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

数据库设计的问题
问题是这样的:
有N种产品,比如电灯、桌子、电脑。。。。。
他们都有各自的属性:电灯是灯丝、功率、电压等
                                        桌子是高度、宽度、长度等
                                        电脑是显示器、键盘、CPU等。

并且这些产品是可以随时增加的。
请问我要怎么设计这个数据库呢?不可能N钟产品就建立N张表吧?字段应该设置成什么呢?还有一点就是他们的属性个数还是不一样的。怎么办呢?望达人给与解答。

------解决方案--------------------
要么一张表要么2张表吧
1张表的就不说了
2张表的就是:
一张放这个电器的名字和ID
一张表放这个电器的ID(第一张表里面的ID),功能、形状、电压。。。。这些
这是我的想法~希望后面的能有更好的办法
------解决方案--------------------
To YOYOOOP():
不行吧,因为每个商品的字段都不一样,那后面一种设计方法的话,第二张表的字段岂不是很大了?而且冗余数据也很多,电灯有的属性桌子不一定有的,
感觉就应该多少商品多少表吧.
啊哦,楼下来.

------解决方案--------------------
其实应该很好解决,提供一种方案:

一张表搞顶,三个字段 goodsid,goodsname,goodsspecs
其中goodsspecs存储各个goodsid的属性,多个属性用*号隔开,方便存储和读取
------解决方案--------------------
产品表一张, 描述产品公共属性, 如名字, 价格,重量等等.

属性定义表一张, 描述产品有哪些属性, 不想太多字段可以用Map的形式,三个字段就可以了

产品ID 属性名 属性值


------解决方案--------------------
我觉得楼上的方法不错,比较可行