compare14 2017-02-09 04:00 采纳率: 20%
浏览 4499

关于数据库中一对多关系的表的设计问题

很简单,现有一张商品表(goods),里面有3个字段(id自增主键,name商品名字,price价格);
现在准备设计一张订单表(order),要求一张订单可能包含一个或多个商品,而且商品数量不定,那么应该如何设计这个订单表(order)呢?

我自己想到两种方案:
1、再额外设计一张中间表(order-goods)把它们关联起来,此表包括字段(order-id、goods-id、goods-num),每个订单的每有一个独立商品就添加一条记录到此表;

2、在订单表(order)里设计一个关联商品字段(goods-info),里面记录有商品id和商品数量拼出来的字符串,譬如某订单里有52号商品3件,166号商品4件,那么此订单的关联商品字段(goods-info)就记录着“52:3,166:4”这么一个字符串。

我个人是偏向于第二种方案,因为不用额外设计一张表,添加修改查询的时候都方便很多,只要取出关联商品字段(goods-info)后处理一下数据就可以了。

大神们能点评一下这两种方案吗?或者有更好更科学的设计方案吗?望指教~

  • 写回答

7条回答 默认 最新

  • 一支糖包仔 2017-02-09 04:05
    关注

    这个是需要一个中间表的。你可以想想,订单肯定需要和用户关联。
    用户表要有用户的基本信息,然后一个用户的id号,在订单表中建立外键。订单表u_id 是用户的ID号,可以存在多个同类型的u_id,再有一个外键关联
    商品表的id。这样就能实现了。

    评论

报告相同问题?

悬赏问题

  • ¥15 lammps Gpu加速出错
  • ¥15 关于PLUS模型中kapaa值的问题
  • ¥15 关于博途V17进行仿真时无法建立连接问题
  • ¥15 请问下这个红框里面是什么文档或者记事本编辑器
  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 为什么安装HCL 和virtualbox之后没有找到VirtualBoxHost-OnlyNetWork?
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)