我有一个表,保持信息对特定对象,说 项目 并已列

ItemID,ItemName,价格, ItemListingType.....LastOrderDate

一位的信息, ItemListingType 可能是10个不同的类型 例如:

私人、政府、非政府、企业...等(strings)和可以扩大到更多类型的未来。

我应该采用一个列表 项目 或者我应该用一个单独的两列的表格,并把一个外国的关键项目表参考,(一个一个来,许多关系)?如:

  • ListingTypeID int

  • ListingTypeName varchar(最大值)

编辑: 有多少价值列,你将会考虑到使用另一个表,

2、4或什么?

感谢

有帮助吗?

解决方案

使用一个单独的表格储存这种参考数据。这是一个宗旨的正常化,并也将使更容易缓存,因为你是分离的只读和阅读写的数据。我的两个分...

其他提示

单独表。

  • 什么如果你有一个类型清单还没用?
  • 或删除最后一个项目类型x?
  • 或需要改变价值?

这些都是 插入、修改和删除的异常情况, ,这是一个原因正常化

我肯定会去一个"查找"的风格列;这样,你是不困难的时候有未来的增补清单的可允许的类型。你也是减少冗余,并使其更易于改变指定的特定类型的清单(如果"政府"改为"政府机构",那么,你只需去改变它在一个地方)。

你应该这样做的第二个表,持有ListingTypes并链接到的id,表从一的对象...

看看 关系数据库关系模型.

在这样的情况下,我问自己:可以的项目有一定的数目的清单类型?如果是,不同的表格。

做的指示说,不会超过3种类型?依赖。有时候我还是会去一个单独的表格,有时不是。你感受到这之后的一段时间。

将该项目一直有一个单一的类型?如果是,同表中,单列。


现在把事情更进一步。如果一项为零或更多的类型以及这些清单类型实际上是共享(换句话说的两个项目可能有相同的类型,然后我们有3个表格:的项目,ListingTypes和交叉参考表,以支持一个多对多关系。

Clasically,应使用额外的表,因为你不会有任何重叠,方法。它也将让你变的价值为这个清单在一个地方。但是,如果你非常非常肯定,没有类型将增加,保持柱。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top