购物系统多种参数的数据库设计
好郁闷,一直都找不到很好的方法来解决这个问题.
大家可以参考WWW.IT168.COM
例如:
硬盘这类产品都有:
转速
容量
等参数;
照相机都有:
像素
镜头类型
等参数;
数据库怎么设计才能使每一类产品都显示该产品的详细参数?
谢谢..
------解决方案--------------------用父子表来解决就好了
------解决方案--------------------同意楼上的
比如产品表:
1 硬盘
2 照相机
属性表
属性内容 产品表ID
1 转速 1
2 容量 1
3 像素 2
4 镜头类型 2
------解决方案--------------------up
------解决方案--------------------关注ing
------解决方案--------------------直接把参数写成XML存入一个字段里面。
然后在外面用一个标志字段。
读的时候先读标志字段,再选择数据表结构DATASET。
对XML进行解析。
------解决方案--------------------我这么设计
设计一个类
class productPro()
{
string proname;//属性名称
string proValue;//属性值
}
对于某个产品,可以使用集合类 productpro[]表明其属性列表
入库的时候直接序列化productpro[]成字符串入库,显示时候反序列化字符串成productpro[]就可以
ps:这只是我最直觉的一个设计,算是提一个解决思路吧!具体完善尚需要商量!看看下面那位大大能有兴趣把他完善一下
提交前,突然想起一个东西!你这个整体上看着就想是一颗树,那么能不能直接借用treeview的treenode来弄呢,正好treenode有text,value两个属性,也有chirld.add方法,看着真像啊!呵呵,如果可以使用treenode,把treenode序列化入库可能简单了
------解决方案--------------------创建三个表:
1 产品表:
ID 产品内容
1 硬盘
2 照相机
2 属性表
ID 属性内容
1 转速
2 容量
3 像素
4 镜头类型
3 产品属性表
产品表ID 属性表ID
1 1
1 2
2 3
2 4
此外,要求产品表产品属性表有主外键关系,并且要求级联删除和级联更新。属性表和产品属性表也是如此。
这样设计的好处是:三个表的数据都是唯一的,没有重复数据,其次实现了数据一致性,