首页域名资讯 正文

MySQL分库分表基础表介绍(1st)

2025-01-16 6 0条评论

表基本模型结构

这里我们模拟一个商城的基本的表结。此结构由(用户、门店、导购、门店商品、订单、订单对应的商品)。其中,导购也是一个用户,门店是只属于一个店主的,同时店主本身也是一个导购也是一个普通用户。

结构图:

 

构造数据脚本

MySQL分库分表(1)-脚本

对业务场景进行模拟

  • 场景1:购买者下订单。

1、从session中获得客户ID。

2、可以通过时间戳等拼凑一个订单ID(在创建表的时候为了方便我用自增的,在以下我们一直就吧订单ID看成不是自增的,是用程序生成的)。

3、从商品的店铺能获得到导购ID(获取规则我们这边认为是随机)。

4、可以从商品中计算出订单价格。

最终就能拼凑出下单的INSERT SQL语句(这边我就不真正写插入语句了)

1 2 3 4 5 6 7 8 9 10 SET  autocommit = 0 ; START  TRANSACTION ;  创建订单语句 INSERT  INTO  orders  VALUES (订单 ID , 导购 ID , 购买用户 ID , 订单价格 , 订单状态 ) ;  创建商品订单语句 INSERT  INTO  order _goods  VALUES ( NULL , 订单 ID , 商品 ID , 商品价格 , 商品数量 ) ;  可以给添加多个商品到订单中 . . . . . . COMMIT ; set  autocommit = 1 ;

以上就是一个客户下单时要操作的,订单ID(订单号)是程序生成的,订单ID(订单号)是程序生成的,重要的事要说三遍。

  • 情况2:购买者浏览订单

当用户查看订单列表的时候可以通过分页一次性获得自己的订单列表。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  每一页 10(这边顺便展示一下单数据量大时优化后的 sql语句 )  查找用户 ID100的订单 SELECT  l_o . orders_id ,    o . user_guide_id ,    o . user_id ,    o . price ,    og . price FROM  (    SELECT  orders _id    FROM  orders    WHERE  user _id  =  100    LIMIT  0 ,  10 )  AS  l _o    LEFT  JOIN  orders  AS  o  ON  l_o . orders _id  =  o . orders _id    LEFT  JOIN  order _goods  AS  og  ON  l_o . orders _id  =  og . orders_id ;
  • 情况3:导购查看订单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  每个导购也可以查看他销售了多少的订单  查找导购 ID1的销售情况 SELECT  o . orders_id ,    o . user_guide_id ,    o . user_id ,    o . price ,    og . price FROM  orders  AS  o    LEFT  JOIN  order _goods  AS  og  ON  o . orders _id  =  og . orders_id WHERE  o . orders _id  IN (    SELECT  orders _id    FROM  (      SELECT  orders _id      FROM  orders      WHERE  user_guide_id = 1      LIMIT  0 ,  10    )  AS  tmp ) ;
  • 情况4:导购修改订单
1 2  这边我们修改订单金额就好,修改 ID1000的订单 UPDATE  orders  SET  price  =  ‘10000’  WHERE  orders_id = 1000 ;
  • 情况5:店主为店铺添加商品

1、我们可以根据操作的用户获得店铺名

1 2  添加商品伪 SQL INSERT  INTO  goods  VALUES ( NULL , 商品名 , 商品价格 , 店铺名 ) ;

 

文章转载来自:trustauth.cn

文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/163240.html 发布于 2025-01-16
文章转载或复制请以超链接形式并注明出处。