数据库设计:许多列与几个列中包含数组

时间:2011-01-26 15:03:52

标签: database database-design

假设我需要在我的数据库中存储公寓。公寓有几个属性,如大小,面积,是否有家具等。

更好的方法是:将每个值存储在一个单独的列中,或者将多个列包含在其中?

4 个答案:

答案 0 :(得分:2)

我同意乔尔的观点,特别是在多少列。尽管如此,我总是以直截了当的方式开始,并为每个“有趣”属性做一列。当然,您想要查询的任何内容,或者在($ / sq-ft)上进行数学运算,都是最容易的。

也许一些只是'显示'的块可以分组......但我不一定会这样开始。

答案 1 :(得分:1)

你不能用一个单一的答案来回答这个问题。 “这取决于我们谈论的列数,以及它们是否可以合理地分解(即标准化)为单独的实体:-P

答案 2 :(得分:1)

如果你正在谈论像Oracle,mysql,postgre这样的关系数据库 通常,每个属性最好有一列。使用此方法,您可以轻松地在数据库中搜索特定属性。

在一列中存储多个值并不常见,仅用于非常特殊的性能优化。

看看数据库规范化: http://en.wikipedia.org/wiki/Database_normalization

答案 3 :(得分:0)

我通常会查看我将要存储的数据,看看数据是否是我以后需要搜索的内容...例如......如果我有一张公寓表,我可能会寻找有4间卧室(或1,2,3 ...)的公寓我会尝试将卧室数量放在一个单独的栏目中...如果卧室计入公寓的一系列其他参数,则为索引关于“卧室数”不能使用。