首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >什么更快?“爆炸”还是另一个纵队?

什么更快?“爆炸”还是另一个纵队?
EN

Stack Overflow用户
提问于 2011-03-19 18:01:59
回答 4查看 337关注 0票数 2

我有一种情况,我需要在我的数据库中存储多个值,但它们是大约的。同样的类型,所以现在我不知道是否更快地将这些值存储为字符串,在MySQL中的VARCHAR字段中以逗号分隔

代码语言:javascript
代码运行次数:0
运行
复制
1,2,3,4,5

然后把它们炸开,我需要它们

代码语言:javascript
代码运行次数:0
运行
复制
$values = explode(",", $stringFromDatabase);

其中$stringFromDatabase是来自mysql_query +的String,并使用$values$values1等一个接一个地得到它们。

为每个变量添加另一列(最大值)。(7行),然后调用特定行的数据库,只需使用标准的mysql_query +mysql_query过程的列单独获取它们?

那么,一列与逗号或多列连在一起?需要注意的是,我总是需要它们(当然是一个一个地),排序并不重要--所以我认为first选项更好的还是更快的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-19 18:04:16

多列更好。没有多值列是数据库规范化的一部分。

在您的情况下-如果您需要从多值3中选择“1,2,3,4,5”,怎么办?这将是相当有挑战性的。但是使用多列,我可以轻松地执行SELECT * FROM Table Where Column3 = 3

票数 5
EN

Stack Overflow用户

发布于 2011-03-19 18:05:11

数据库的一般经验法则是列应该是原子的。换句话说,它们应该代表一条信息,而只代表一条信息。将CSV列表塞进一列会打破这一原则,并且会使你的生活在长期内变得更加艰难,特别是在对你存储的数据进行分析的时候。我建议每个值有一列是最好的选择。

票数 3
EN

Stack Overflow用户

发布于 2011-03-19 18:06:30

对每个值使用单独的列。请参阅1NF

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5363804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档