美文网首页商城
开发商城中订单表的思考

开发商城中订单表的思考

作者: KoPa | 来源:发表于2018-04-27 22:46 被阅读187次

    在开发微信商城小程序时,遇到一个关于表设计的问题。

    如果按照我之前的思考,我是这样设计表的:

    **订单表**

        shop_order表,记录订单情况

    | 字段 | 类型 | 描述 |

    | --- | --- | --- |

    | id | int |  |

    | uid | int | 用户id |

    | product_id | varchar | 商品编号 |

    | trade_sn | varchar | 订单编号(利用微信支付trade_sn作为唯一编号) |

    | price | int | 商品价格 |

    | score | int | 积分使用,默认为0 |

    | dates | time | 订单日期 |

    | express_company  |  快递公司名称  |

    | express  | varchar  | 快递号 |

    | status | tinyint | 订单状态 -1 订单取消 0 未发货 1 已发货 2 已收货|

    **商品管理表**

        shop_product表

    | 字段 | 类型 | 描述 |

    | --- | --- | --- |

    | id | int |  |

    | name | varchar | 商品名称 |

    | price | int | 商品价格 |

    |img_url| varchar|轮播图|

    | total | int | 商品总数 |

    | discount | int | 折扣价 |

    | member_price | int | 会员价 |

    | set_color | varchar | 颜色 |

    | set_size | varchar | 尺码 |

    | score_types | tinyint | 积分是否可使用,默认 1 不可使用 |

    | brand | int | 所属品牌 |

    | classify | int | 所属分类 |

    | contents | text | 内容 |

    | dates | int | 创建时间 |

    | status | tinyint | 状态 0 上架 1 下架 |

    但是深入开发是会发现,会存在以下问题

    每个用户是对多个订单

    每个订单都是对应多个商品

    一个订单表记录多个商品造成查询混乱,不易于扩展。

    对比已经存在的这两个表,找出相同的特性,建立一个中间表order_middle。

    相同特性:

    订单编号 trade_sn 每个订单具有唯一性,对应同一订单的多个商品

    订单id       order_id   创建订单的自增长ID

    产品id    product_id  用户购买的产品对应id

    于是乎我们监理处一个中间表order_middle,该表的作用主要是记录

    ·一个用户对应一个订单

    · 一个订单对应多个商品

    | 字段 | 类型 | 描述 |
    | --- | --- | --- |
    | id | int |  |
    | order_id | int | 订单id |
    | trade_sn | varchar | 订单编号 |
    | product_id | int | 产品id |
    | price | int | 原价 |

    | cauth_iden | varchar | 用户唯一标识符 |

    | status | tinyint | 状态 |

    order表需要修改成

    | 字段 | 类型 | 描述 |

    | --- | --- | --- |

    | id | int |  |

    | uid | int | 用户id |

    | trade_sn | varchar | 订单编号(利用微信支付trade_sn作为唯一编号) |

    | total_price | int | 总价格 |

    | score | int | 积分使用,默认为0 |

    | dates | time | 订单日期 |

    | express_company  |  快递公司名称  |

    | express  | varchar  | 快递号 |

    | status | tinyint | 订单状态 -1 订单取消 0 未发货 1 已发货 2 已收货|

    相关文章

      网友评论

        本文标题:开发商城中订单表的思考

        本文链接:https://www.haomeiwen.com/subject/hwjilftx.html