php商品数据库表,商品表 数据库设计

目前要做一个手机版商城, 在设计数据库时遇到该问题..

比如一件衣服,这件衣服有红色、白色、蓝色,

红色又有X,XL,XLL尺码,

白色有S,M,X,XL

蓝色有M,X,XL

对于自己设计的数据库一直感到不太满意,望各路大神,赐教.

此问题的引申 一般商场不可能只出售衣服 , 还有会有电子产品等等乱七八糟的 后期扩展性 要怎么办呢?

回复内容:

目前要做一个手机版商城, 在设计数据库时遇到该问题..

比如一件衣服,这件衣服有红色、白色、蓝色,

红色又有X,XL,XLL尺码,

白色有S,M,X,XL

蓝色有M,X,XL

对于自己设计的数据库一直感到不太满意,望各路大神,赐教.

此问题的引申 一般商场不可能只出售衣服 , 还有会有电子产品等等乱七八糟的 后期扩展性 要怎么办呢?

尺码(chimas)表

id | mark

------------

1 | X

2 | XL

3 | XLL

4 | M

5 | S

颜色(colors)表

id | color

------------

1 | 蓝

2 | 白

3 | 红

4 | 紫

5 | 灰

衣服(yifus)表

id | name

------------

1 | 大衣

2 | 毛裤

3 | 内衣

4 | 内裤

衣服与颜色关联(yifu_colors)表

id | color_id | yifu_id

----------------------------

1 | 1 | 1

2 | 1 | 2

3 | 2 | 1

4 | 2 | 2

衣服与尺码关联(yifu_chimas)表

id | chima_id | yifu_id

----------------------------

1 | 1 | 1

2 | 2 | 2

3 | 1 | 2

4 | 2 | 1

依你的需求里衣服包含款式、颜色、大小三个属性。 自然也就是对应四个逻辑数据表了。

你之前纠结的地方在于把颜色和大小附属于款式了。

前三个表引用二楼的

尺码(size)表

id | mark

------------

1 | X

2 | XL

3 | XLL

4 | M

5 | S

颜色(colors)表

id | color

------------

1 | 蓝

2 | 白

3 | 红

4 | 紫

5 | 灰

衣服(clothes)表

id | name

------------

1 | 大衣

2 | 毛裤

3 | 内衣

4 | 内裤

第四个表可以是直接是衣服跟尺码和颜色的关联表

衣服样式表(clothes_spec)

id | clothes_id | size_id | color_id

------------------------------------

1 | 1 | 1 | 2

2 | 2 | 1 | 2

3 | 1 | 3 | 1

第四个表这样做的好处是更清晰,因为少了一个表,查起来速度也快一点。但是不足是扩展起来比较麻烦,每添加一个属性就要向表中添加一个列。但是如果是商品量,用户量很大的情况下,这种方式还是比较有优势的。

扩展性是个问题,给出我的想法吧,坐等大牛给出扩展性好的方案:

id(商品id)

name(商品名称)

color(颜色)

size(尺码)

count(数量)

1

某衣服

red

M

0

1

某衣服

red

X

100

1

某衣服

red

XL

200

1

某衣服

red

XLL

300

查询红色衣服有哪些尺码

select size from table where id={id} and color='red' and count > 0

建议你去网上找关于库存SKU的文章和设计方法

商品表:

good_id, title, cate_id

类目属性表:

cate_id, attr_id

商品属性分类表:

attr_id, attr_label, attr_key(做alias用), attr_sort

1, 颜色, COLOR, 0

2, 尺码, SIZE, 1

商品属性详情表:

good_id, attr_value_id,attr_id, attr_value_title, attr_value_sort

1, 1, 1, 红色, 0

1, 2, 1, 蓝色, 1

1, 3, 2, 19, 0

1, 4, 2, 20, 1

如果你要考虑后期的扩展性,建议采用MySQL的EVA结构,不然上面的几种到扩展的时候,都比较麻烦。

这设计也太糟糕了。。SKU不能这么设计。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值