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

开发商城中订单表的思考

作者: 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