难死我了,谁来挑战一下?!
我仔细的描述一下问题
有一个产品列类别列表页,如下结构
电脑1,电脑2,电脑3,电脑4,.....电脑9
9种类别的电脑价钱不一样,
电视1,电视2,电视3,电视4,电视5,,,,,,,电视9
9种类别的电视价钱不一样,
冰箱1,冰箱2,冰箱3,冰箱4,,,,,,,,,,,,,,,冰箱9
9种类别冰箱价钱不一样,
………………………………
N1,N2,N3,N4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,N9
9种N价钱不一样,
做了一个页面,上面列表出了电脑1-9,电视1-9,冰箱1-9,每个产品前都有一个复选框,打勾表示购买,提交存储到数据库,
数据库怎么设计最合理,其中已经存在一些表,分别为电脑表,电视表,冰箱表,…………N表,客户表,
现在要设计一个订单表,这个订单表怎么设计????
一开始时的设计:
客户 | 产品名称 | 产品数量 | 产品单价 | 总计金额
kkun | 电脑3 | 1 | 5400 | 5400
kkun | 冰箱4 | 1 | 1380 | 1380
kkun | N4 | 2 | 200 | 400
这样设计的麻烦是,客户在点提交表单的时候,我要插入多条记录!!!
于是又想到一个设计方法:
客户 | 电脑 | 电视 | 冰箱 | N1 | N2 | N3 ……
kkun | 电脑1| 电视5| 冰箱9| n11|n21 |n31 ……
…………
这样设计如果产品类别很多的话,这个表字段的数量就太多了,而且这样设计,我发现数据冗余,例如某客户只买三台电视,类型不一样,那么电脑列,冰箱列,N1列,N2列……N9列 都为空,尤其在产品类别多的时候,会有大量的数据冗余,显然设计也不合理
------解决方案--------------------支持第一种设计方法
------解决方案--------------------第一种好一点,
用你第二种的话,如果你又加个别的产品,不是又要重新加字段了.
另外,你的电脑表,电视表,冰箱表也可以考虑合为一个表,加个分类字段,这样扩充性会好些
------解决方案--------------------首选第一种嘛
------解决方案--------------------可以使用一张销售表 + 一张产品参数表
销售表里记录客户,产品编号,产品数量,购买日期.等和销售相关的信息
产品参数表里记录产品编号,产品单价,产品描述.等和产品属性相关的信息
嗯..第三范式就是这样的..
------解决方案--------------------?
其实我也知道第一种比较好,,可用第一种也是有顾虑的,,
当客户点击[下一步]时,我在后台需要处理多条记录的insert操作,,,,可是如果他上一步又重新选的话,,,,,,,,,,,这时候我就必须把他已经选择的记录再全部删除,,,,
这里总感觉怪怪的,,,,,不知道大家遇到过这种情况没,,,,是怎么处理的
==========
保存用户提交的结构在session里