[求助] mysql 不同的类型商品,如何设计表,是分别建表还是有个统一表

2020-04-17 09:35:19 +08:00
 kukala

不同的类型商品,如何设计表,是分别建表还是有个统一表

例如:旅游线路,酒店,机票

1. 描述:

2. 初步设想:

如:

goods->统一表,关联“旅游线路,酒店,机票”的产品表

tours->旅游线路表

hotel->酒店表

fight->机票表

最后:不知道这样的设计是否可行,是否方便以后数据量大了后的分表分区???

欢迎提出更好建议,谢谢了

3590 次点击
所在节点    MySQL
14 条回复
hugedata
2020-04-17 09:54:19 +08:00
数据量、并发访问量不大,没有任何问题。怎么搞都没有问题。
针对以上的三个需求描述,访问量上来时,增加缓存,再大一点,可以增加定时提前计算放缓存,再大,上 es 做搜索。
抛开数据量和并发数的话,不太好定义怎么设计更好。
hugedata
2020-04-17 09:57:28 +08:00
我还是比较赞成分开存储,至于你要不要弄个统一商品表来关联,还是看你的取舍,统一关联了起来,你要把需要搜索的字段也关联进来。不然你的 sql 语句还是要把几个表的查询结果都 union all 。
kukala
2020-04-17 10:09:22 +08:00
@hugedata 感谢回复,搜索初步先按照类别来搜索好了,类型 tabs 标签;
lower
2020-04-17 13:47:11 +08:00
分开存储,,就算有 统一搜索等后续需求,也可以用视图或者 搜索引擎 来搞;
hugedata
2020-04-17 14:33:12 +08:00
tabs? tags 吧。比较好奇,弄标签的话,标签是怎么存,怎么搜的? like 左右匹配还是 match against ?
keleifeng
2020-04-17 14:36:38 +08:00
分开存储,,就算有 统一搜索等后续需求,也可以用视图或者 搜索引擎 来搞;
kanepan19
2020-04-17 14:40:49 +08:00
个人建议,存同一个表, 用扩展表扩展业务专用信息。
因为商品,订单,支付,统一逻辑,多个业务可以公用。
kukala
2020-04-17 14:45:50 +08:00
@hugedata
分开存储的话,搜索页初步可以这样来
搜索“北京”
下拉建议框分别是
“北京”的旅游线路
“北京”的酒店
“北京”的机票
点击后,再按照商品类型来搜索

看飞猪 APP 上是这样来的
kukala
2020-04-17 14:49:37 +08:00
@lower 商品表和订单表都分开存储吗?
1ffree
2020-04-17 15:52:56 +08:00
先想想 order 表里的 商品 id 怎么取?
lower
2020-04-17 16:21:56 +08:00
@kukala 订单不确定,还是看具体的业务场景吧,如果还存在着把客户订单再拆分到 商家子订单等到复杂的后端业务,那最好考虑是否分开。
统一的商品表从你描述的场景感觉用处不大,不仅要多维护表和关系,搜索时扩展表还是要关联查才行。
hugedata
2020-04-20 13:56:03 +08:00
@kukala 感谢,学到了。
kukala
2020-04-20 16:59:47 +08:00
@hugedata 感谢你才对,我尝试分开存储先
kukala
2020-04-20 17:00:19 +08:00
@lower 感谢回复,先尝试分开存储

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/663299

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX