• 购物商城数据库设计-订单系统设计


    订单系统在整个商城体系中的作用非常重要,因为一些业务的开展往往是围绕订单来展开的。因此设计好一个订单系统是多么的重要。

    我们根据用户的行为逐个设计表结构。

    首先用户浏览商品,将看中的商品加入到购物车,这里应该有一张购物车表

    购物车表(order_cart)
    ----
    skuId 
    spuId
    用户id
    店铺id
    商品名称
    商品数量
    商品价格
    状态(下单之后对应商品就不应该显示在购物车了)
    

    选中购物车中的某些商品,进行下单,订单表也就应运而生

    订单表(order_info)
    ----
    订单编号(如果对编号格式没什么要求,可使用雪花算法https://blog.csdn.net/u011499747/article/details/78254990来生成)
    itemCount (商品项数量,不是商品个数,比如手机*2,鼠标*1,这里应该是2)
    用户id
    店铺id
    下单时间
    支付方式(可用数字表示,如1:支付宝,2:微信,3:银行卡...)
    支付时间
    outTradeNo 支付宝订单号
    配送方式
    期望配送日期
    商品总额
    运费
    实际付款
    订单状态(这里的状态可根据实际项目来定,可以定10,20,30..这样如果中间缺少一个状态可以添加进去)
    

    如果购物车里面有多个店铺的商品,那么应该分别为这些店铺生成对应的订单。平台可以进行合并支付,但是订单还是要归店铺的。

    上面是订单的基本信息,接下来是订单商品相关。

    订单商品表(order_product)
    ---
    订单编号
    spuId
    skuId
    店铺id
    商品名称
    商品数量
    商品价格
    

    这里order_info与order_product是1对多的关系,一个订单可能有多个商品。

    下单完成,等着发货,物流信息不能少,加下来是物流表

    物流表(order_logistics)
    ---
    订单标号
    物流公司id
    物流公司编号
    快递单号
    发货时间
    收货时间
    
    物流跟踪表(order_logistics_flow)
    ---
    订单标号
    物流公司标号
    快递单号
    remark(根据第三方接口返回来的结果信息)
    

    加下来设计一下发票表

    订单发票(order_invoice)
    ---
    发票类型
    发票抬头
    发票内容
    发票代码
    发票号码
    开票日期
    校验码
    密码区
    服务名称
    规格型号
    数量
    单价
    金额
    合计
    税率
    税额
    销售方名称
    销售方纳税人识别号
    销售方地址电话
    销售方开户行及账号
    备注
    收入款人
    开票人
    

    下单完成后进行支付,这里会有支付记录表,方便以后对账

    支付记录表(order_pay_history)
    ---
    订单编号
    支付方式
    订单总额
    支付金额
    pay_json(第三方支付平台参数信息,可使用json方式保存)
    remark (备注)
    

    用户收到货后,可以进行评论,下面是评论表

    订单评论(order_product_comment)
    ---
    spuId
    skuId
    评论用户id
    用户昵称
    点赞数
    comment(评论内容)
    评论分数(1~5分)
    评论时间
    product_info_json(评论的商品信息,如规格型号之类的)
    image_json(评论图片)
    

    好了,订单系统设计到此为了,当然围绕订单系统还有更多的业务可以开展,这里只做了一些基本的结构设计。

    顺便说一句,如果一开始就想做分布式系统,建议把商品相关的表和订单表放在同一个数据库中,一则是因为订单业务需要查询商品相关的数据,二则是因为放在一起做事务比较容易,不然需要做分布式事务,加大了开发成本。前期项目规划的时候这点需要考虑到。

  • 相关阅读:
    IOS开发中实现UITableView按照首字母将集合进行检索分组
    IOS开发中设置导航栏主题
    IOS中使用.xib文件封装一个自定义View
    IOS中将字典转成模型对象
    WindowsPhone8中LongListSelector的扩展解决其不能绑定SelectdeItem的问题
    WindowsPhone8.1 开发-- 二维码扫描
    tomcat 开机自启
    redis ubuntu 开机自启
    webStorm 中使用 supervisor 调试
    ubuntu 14.04 tab失效问题
  • 原文地址:https://www.cnblogs.com/yelanggu/p/12976129.html
Copyright © 2020-2023  润新知