目前要做一个手机版商城, 在设计数据库时遇到该问题..
比如一件衣服,这件衣服有红色、白色、蓝色,
红色又有X,XL,XLL尺码,
白色有S,M,X,XL
蓝色有M,X,XL
对于自己设计的数据库一直感到不太满意,望各路大神,赐教.
此问题的引申 一般商场不可能只出售衣服 , 还有会有电子产品等等乱七八糟的 后期扩展性 要怎么办呢?
怪我咯2017-04-10 14:44:39
尺码(chimas)表
1 2 3 4 5 6 7 8 |
|
颜色(colors)表
1 2 3 4 5 6 7 8 |
|
衣服(yifus)表
1 2 3 4 5 6 7 |
|
衣服与颜色关联(yifu_colors)表
1 2 3 4 5 6 7 |
|
衣服与尺码关联(yifu_chimas)表
1 2 3 4 5 6 7 |
|
大家讲道理2017-04-10 14:44:39
前三个表引用二楼的
尺码(size)表
1 2 3 4 5 6 7 8 |
|
颜色(colors)表
1 2 3 4 5 6 7 8 |
|
衣服(clothes)表
1 2 3 4 5 6 7 |
|
第四个表可以是直接是衣服跟尺码和颜色的关联表
衣服样式表(clothes_spec)
1 2 3 4 5 6 |
|
第四个表这样做的好处是更清晰,因为少了一个表,查起来速度也快一点。但是不足是扩展起来比较麻烦,每添加一个属性就要向表中添加一个列。但是如果是商品量,用户量很大的情况下,这种方式还是比较有优势的。
PHP中文网2017-04-10 14:44:39
扩展性是个问题,给出我的想法吧,坐等大牛给出扩展性好的方案:
id(商品id) | name(商品名称) | color(颜色) | size(尺码) | count(数量) |
---|---|---|---|---|
1 | 某衣服 | red | M | 0 |
1 | 某衣服 | red | X | 100 |
1 | 某衣服 | red | XL | 200 |
1 | 某衣服 | red | XLL | 300 |
查询红色衣服有哪些尺码
1 2 |
|
PHP中文网2017-04-10 14:44:39
商品表:
1 2 |
|
类目属性表:
1 2 |
|
商品属性分类表:
1 2 3 4 |
|
商品属性详情表:
1 2 3 4 5 6 |
|