mysql数据库订单表应如何设计才能更加合理?

我自己想到的有两种建表方案:

第一种:
order_id 订单id
shop_id 商家id
goods_id 商品id
......
这种方式就是将各种id写在订单表里,等用到的时候再去关联。

第二种:
order_id 订单id
shop_name 商家名称
goods_name 购买的商品名称
price 单价
total 总价
......
这种方式就像手写账本一样,把账目数据直接写在表里。

这两种分别有什么优缺点?通常情况下,订单表应该如何设计?

阅读 4.3k
3 个回答

那当然是第二种的好。。
你第一个查询要连接3个表,无论是效率还是维护都很麻烦(写的时候感觉很学院派,很优雅,出了问题或者性能调优时自找麻烦。。。)不要太执着于范式要求,

这个要根据你的业务来说,没有好坏啦。

  1. 第一种,将各种id放在订单表上,这势必会让当你需要查询的时候时候,可能符合第三范式,但是各种级联表,导致SQL查询效率变低
  2. 第二种,根据实际的业务需要抽取出最基本的信息进行,适当的冗余字段出现的表中是允许的。

个人认为第二种可能比第一种要好,

是这样的,根据业务需求定的,适当的冗余重要字段到订单表是必要的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题