设计数据库表有套路

背景

很多开发者CURD了两三年,对数据库表的设计还是硬着头皮上,一旦换了一个新的业务又不知所措,又要问一下伟大的度娘和谷哥。下面我来分享一个电商预售活动的数据库表的设计。希望大家可以从中收获一些套路和方法。

预售,是商家为了刺激消费,提前发布商品信息,并利用优惠的提前购买政策吸引顾客预付定金购买。预售模式能快速收集消费者的订单需求,是电商平台最常用、也是最火爆的一种销售模式

意义
  • 营销层面来说,预售可以提前预热活动,拉长活动周期,同时打出限时限量的噱头,将商品打造成爆款吸引流量,产生饥饿营销效应。
  • 从技术层面来讲,像双十一、618这样的电商狂欢节开场前后的一小时中,会有大量并发交易,预售可以有效分散下单时间,从而降低系统的峰值压力
设计
  • 预售是一个特殊类型的活动,所以必不可少有一个预售活动表
presale表(预售活动表)
pre_id 主键id 
pre_goods_commonid 商品SPU id,针对多SKU,这里存的最好是common id
vid 店铺id,针对多店铺
pre_category 预售分类,
pre_pic 预售图片,提高活动热度
pre_start_time 预售开始时间
pre_end_time 预售结束时间
pre_max_buy 每人限购数量
pre_limit_time 付尾款的时间
pre_status 活动状态,0不正常 1正常
is_rollback 库存是否回滚
  • 有活动就肯定有活动商品表
pre_goods表(预售商品表)
id 主键
pre_id  关联活动id
gid 商品id 最终的商品id
goods_price 商品原价
goods_name 商品名称快照
goods_image 商品图片快照
pre_deposit_price 商品预售定金
pre_sale_price 商品预售价
goods_stock 预售库存
  • 预售肯定就要先给定金,所以下单的时候就要专门抽离出一张表,预售定金订单表,和商城订单表区分开,后续预售订单付尾款的时候再转移商城订单表
pre_order表(预售订单表)
  order_id 主键,
  order_sn 订单号,
  add_time 订单添加时间,
  buyer_id 会员id,
  buyer_name 会员名,
  vid 店铺id,
  store_name 店铺名,
  pre_id 预售活动id,
  gid 商品id,
  goods_name 商品名称,
  goods_image 商品图片,
  goods_num 商品数量,
  goods_price 定金,
  goods_price_finish 尾款,
  order_amount 总金额,
  order_state 订单状态:0(取消)10(默认):未付款;20:付定金;30付尾款,
  first_time 订单第一次支付时间(付定金),
  finished_time 订单完成时间,
  member_message 用户留言,
  address_id 用户地址编号,
  true_name 用户姓名,
  address_info 用户地址详细信息,
  payment_code 支付代码,
  shipping_fee 运费

大致上就三个表就足够,大家看完是否觉得好像也没有套路。其实也是有的,大家没发现我对业务的一个熟悉程度嘛,正所谓“业务驱动开发”,当你对一个业务了如指掌,以及了解整个业务链路的上下级关系,只要不违反基本的MYSQL规范,进行数据库表的设计还是游刃有余的。

作者:lzhui

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闫锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值