基本数据库的设计。使用一个另一个表或科勒姆
-
22-09-2019 - |
题
我有一个表,保持信息对特定对象,说 项目 并已列
ItemID,ItemName,价格, ItemListingType.....LastOrderDate
一位的信息, ItemListingType 可能是10个不同的类型 例如:
私人、政府、非政府、企业...等(strings)和可以扩大到更多类型的未来。
我应该采用一个列表 项目 或者我应该用一个单独的两列的表格,并把一个外国的关键项目表参考,(一个一个来,许多关系)?如:
ListingTypeID int
ListingTypeName varchar(最大值)
编辑: 有多少价值列,你将会考虑到使用另一个表,
2、4或什么?
感谢
解决方案
使用一个单独的表格储存这种参考数据。这是一个宗旨的正常化,并也将使更容易缓存,因为你是分离的只读和阅读写的数据。我的两个分...
其他提示
我肯定会去一个"查找"的风格列;这样,你是不困难的时候有未来的增补清单的可允许的类型。你也是减少冗余,并使其更易于改变指定的特定类型的清单(如果"政府"改为"政府机构",那么,你只需去改变它在一个地方)。
在这样的情况下,我问自己:可以的项目有一定的数目的清单类型?如果是,不同的表格。
做的指示说,不会超过3种类型?依赖。有时候我还是会去一个单独的表格,有时不是。你感受到这之后的一段时间。
将该项目一直有一个单一的类型?如果是,同表中,单列。
现在把事情更进一步。如果一项为零或更多的类型以及这些清单类型实际上是共享(换句话说的两个项目可能有相同的类型,然后我们有3个表格:的项目,ListingTypes和交叉参考表,以支持一个多对多关系。
Clasically,应使用额外的表,因为你不会有任何重叠,方法。它也将让你变的价值为这个清单在一个地方。但是,如果你非常非常肯定,没有类型将增加,保持柱。