根据需求设计mysql表

发布于 2022-09-02 20:40:54 字数 500 浏览 48 评论 0

大家好,首先感谢大家浏览该问题
说下需求:商城项目中商品的属性问题,举个例子来说:
衣服有颜色和尺码两个属性,我的想法是单独的来一张表记录不同属性的价格和库存
比如:
黑色 - M号 - 70元 - 35件
黑色 - L号 - 73元 - 32件
白色 - L号 - 73元 - 30件
这张表就这么设计,但是问题来了,比如手机有这么几个属性,颜色、内存、运营商(非合约、移动、联通、电信)
如果仍然按上面衣服的方法来,很明显要多出一列,也就是
白色 - 32G - 移动合约机 - 20元 - 10部
白色 - 32G - 联通合约机 - 30元 - 50部
金色 - 32G - 电信合约机 - 10元 - 40部

如果把这些属性信息都序列化之后存储也可以,but当我想搜索华为32G移动合约机的时候似乎就是个麻烦事了,请问大家有没有什么好的思路可以提供,谢谢诸位,不胜感激
PS:看了ecshop的设计,是有个商品基价,然后价格在基价上加减,但是不太倾向这种做法,添加商品的时候似乎有些麻烦

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

虫児飞 2022-09-09 20:40:54

现在的问题,可以说都被人提问过了.你这个问题,可以参数我这个答案.
https://segmentfault.com/q/1010000005347571/a-1020000005347916
可以把表设计如下:

商品表

商品 id商品名称
1iPhone
2黄瓜

商品属性表

商品 id规格颜色价格
116g白色4999
132g白色5499
21

对于你现在自己练手项目,最适用就是这种设计了.
不过此种设计针对商品的属性一定或少的情况下适用,如果属性较多,那么就要增加属性字段,而且有的商品未必用到了这个属性,造成浪费,导致属性表不变扩大.例如商品2黄瓜.
可以变成如下设计:

属性表

属性 id属性名称
1规格
2颜色
3价格

商品种类表

种类 id商品 id
a1
b1
c2

商品属性表

商品种类 id属性 id属性值
a116g
a2白色
a34999
b132g
b2白色
b34999
c4上海

设计如上,商品黄瓜的属性只会产生一条数据.

So要识趣 2022-09-09 20:40:54

个人觉得你这个问题应该是两个问题,第一如何设计一个好的商品表的数据结构,第二如何更好搜索商品。首先第一个问题:设计商品表。首先你得分析一下你的商城业务都有那些商品,商品主表跟商品属性表是一对多的关系,不同的商品可能需要设计不同的关系结构。简单思路有如ecshop那种,也有将属性单列一张表的,但是属性单列一张表会有数据冗余。
1.可以将属性表多设计几个字段。
1).设计一个商品表。存储商品的通用字段。
2).设计一个价格表,属性表字段包括,规格,颜色,但是由于有些字段不是通用的,所以可能会有冗余,可以放默认值。
2.如何更好搜索商品。
比如搜索:华为32G移动合约机,如果用户输入华为32G移动合约机,来进行商品搜索。如果华为32G移动合约机不是商品名称,系统应该先做分词,分词之后再进行搜索对比。如果华为32G移动合约机直接为商品名称,则可以直接搜索。

花期渐远 2022-09-09 20:40:54

增加一个属性表
product_id key value
多个属性多几行记录就行了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文