商品表 数据库设计

WBOY
풀어 주다: 2016-06-06 20:46:43
원래의
1297명이 탐색했습니다.

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

比如一件衣服,这件衣服有红色、白色、蓝色,
红色又有X,XL,XLL尺码,
白色有S,M,X,XL
蓝色有M,X,XL

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

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

回复内容:

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

比如一件衣服,这件衣服有红色、白色、蓝色,
红色又有X,XL,XLL尺码,
白色有S,M,X,XL
蓝色有M,X,XL

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

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

尺码(chimas)表

<code class="lang-sql">id  |  mark
------------
1   |  X
2   |  XL
3   |  XLL
4   |  M
5   |  S
</code>
로그인 후 복사

颜色(colors)表

<code class="lang-sql">id  |  color
------------
1   |  蓝
2   |  白
3   |  红
4   |  紫
5   |  灰
</code>
로그인 후 복사

衣服(yifus)表

<code class="lang-sql">id  |  name
------------
1   |  大衣
2   |  毛裤
3   |  内衣
4   |  内裤
</code>
로그인 후 복사

衣服与颜色关联(yifu_colors)表

<code class="lang-sql">id  |  color_id  |  yifu_id
----------------------------
1   |    1       |  1
2   |    1       |  2
3   |    2       |  1
4   |    2       |  2
</code>
로그인 후 복사

衣服与尺码关联(yifu_chimas)表

<code class="lang-sql">id  |  chima_id  | yifu_id
----------------------------
1   |  1         |  1
2   |  2         |  2
3   |  1         |  2
4   |  2         |  1
</code>
로그인 후 복사

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

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

前三个表引用二楼的

尺码(size)表

<code>id  |  mark
------------
1   |  X
2   |  XL
3   |  XLL
4   |  M
5   |  S
</code>
로그인 후 복사

颜色(colors)表

<code>id  |  color
------------
1   |  蓝
2   |  白
3   |  红
4   |  紫
5   |  灰
</code>
로그인 후 복사

衣服(clothes)表

<code>id  |  name
------------
1   |  大衣
2   |  毛裤
3   |  内衣
4   |  内裤
</code>
로그인 후 복사

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

衣服样式表(clothes_spec)

<code>id | clothes_id | size_id | color_id
------------------------------------
 1 |      1     |    1    |     2
 2 |      2     |    1    |     2
 3 |      1     |    3    |     1
</code>
로그인 후 복사

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

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

id(商品id) name(商品名称) color(颜色) size(尺码) count(数量)
1 某衣服 red M 0
1 某衣服 red X 100
1 某衣服 red XL 200
1 某衣服 red XLL 300

查询红色衣服有哪些尺码

<code>select size from table where id={id} and color='red' and count > 0
</code>
로그인 후 복사

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

商品表:

<code>good_id, title, cate_id
</code>
로그인 후 복사

类目属性表:

<code>cate_id, attr_id
</code>
로그인 후 복사

商品属性分类表:

<code>attr_id, attr_label, attr_key(做alias用), attr_sort
1,  颜色, COLOR, 0
2,  尺码, SIZE, 1
</code>
로그인 후 복사

商品属性详情表:

<code>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
</code>
로그인 후 복사

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

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!