日期:2014-05-18  浏览次数:20447 次

属性不同的产品,其资料如何存放?
由于产品的种类不同,其属性很难统一描述。例如,   A产品是长方体,必须描述长、宽、高;B产品是球形的,必须记录其直径;C产品是圆柱状,必须记录其高度和直径。但这些属性对用户来说都非常重要,最好能在各式凭证中准确反映其属性名称和属性的值。请问该如何设计产品资料表?
1、用一个产品资料表,包括了所有产品的全部属性名称。   ----   字段数量可能很多,而且填写时可能很容易搞错。
2、用一个总的产品资料表,记录编码、名称等通用属性,再关联几个从属的表,从属表按产品的分类来设计字段。----   录入、调用这些表中的数据时,SQL语句可能会变得很复杂。
请教一下有经验的前辈,一般用哪种方式?或者是除了这两种方法之外的其他方法?

------解决方案--------------------
--Try
CREATE TABLE Product(ID INT IDENTITY(1,1),ProName VARCHAR(100),AttributeID INT)
CREATE TABLE ProAttribute(AttributeID INT,AttributeName VARCHAR(100),AttributeValue VARCHAR(20))
通过产品表Product的AttributeID字段与属性表ProAttribute的AttributeID字段对应.
ProAttribute表中包含对应产品的属性名称,属性值等信息;这样你可以为产品设置任意多的属性
--这应该是种比较灵活的办法吧,对不确定的情况可以有效处理
--你列的第二种方法对于有产品分类的数据应该是比较好的解决办法



------解决方案--------------------
可以使用第二种方法
------解决方案--------------------
第二种吧,数据库设计中不是有个过程叫“特殊化”么。
------解决方案--------------------
第二种,符合2nf