› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
kukala
V2EX  ›  MySQL

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

  •  
  •   kukala · Apr 17, 2020 · 4712 views
    This topic created in 2374 days ago, the information mentioned may be changed or developed.

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

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

    1. 描述:

    • 首页会一起对“旅游线路,酒店,机票”的产品进行推荐显示(如:淘宝 APP 首页的猜你喜欢)

    • 搜索框,搜索“北京”时,先显示的是搜索分类页面(如:北京的酒店、北京的门票、北京的旅游线路)

    • 订单表,“旅游线路,酒店,机票”的产品的订单都是放在同一个订单中心页面显示(如:淘宝 APP 的我的订单)

    2. 初步设想:

    • 针对描述 1:自己初步是想针对“旅游线路,酒店,机票”的产品分别建表,然后有个统一商品表,关联起来
    如:
    
    goods->统一表,关联“旅游线路,酒店,机票”的产品表
    
    tours->旅游线路表
    
    hotel->酒店表
    
    fight->机票表
    
    • 针对描述 2:因为是根据产品分别建表了,搜索时就查找各自的表数据就行了
    • 针对描述 3:因为在一个订单中心,所以设想和描述 1 操作一样,有个统一的订单表,对各个产品进行关联

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

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

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

    看飞猪 APP 上是这样来的
    kukala
        9
    kukala  
    OP
       Apr 17, 2020
    @lower 商品表和订单表都分开存储吗?
    1ffree
        10
    1ffree  
       Apr 17, 2020
    先想想 order 表里的 商品 id 怎么取?
    lower
        11
    lower  
       Apr 17, 2020
    @kukala 订单不确定,还是看具体的业务场景吧,如果还存在着把客户订单再拆分到 商家子订单等到复杂的后端业务,那最好考虑是否分开。
    统一的商品表从你描述的场景感觉用处不大,不仅要多维护表和关系,搜索时扩展表还是要关联查才行。
    hugedata
        12
    hugedata  
       Apr 20, 2020
    @kukala 感谢,学到了。
    kukala
        13
    kukala  
    OP
       Apr 20, 2020
    @hugedata 感谢你才对,我尝试分开存储先
    kukala
        14
    kukala  
    OP
       Apr 20, 2020
    @lower 感谢回复,先尝试分开存储
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1071 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 23:35 · PVG 07:35 · LAX 16:35 · JFK 19:35
    ♥ Do have faith in what you're doing.