mysql 使用M:M关系结构化表格或使用更简单的方法(在文本列中对FK约束进行分组)[重复]

omhiaaxx  于 2023-01-12  发布在  Mysql
关注(0)|答案(1)|浏览(98)
    • 此问题在此处已有答案**:

Many-to-many relationships examples(4个答案)
昨天关门了。
我有以下表格

tb_orders: 
      > id - PK
      > name
      ...
      > product_id - FK

tb_product: 
      > id - PK
      > components
      > color 
      ...

在一个订单中,我可以有多个产品,但是外键列只有一个对tb_product的引用
我可以使用两种方法:
1.创建一个关联表,其中每个订购的产品对应一行

tb_orders: 
      > id - PK
      > name
      ...
      > order - FK

tb_order_products: 
      > id - PK 
      > product_id - FK
      > order_id - FK

tb_product: 
      > id - PK
      > components
      > color 
      ...

1.我可以用列表/数组格式创建一个products_id列,在一行中包含所有订购的产品ID:"[1,5,7]"。在插入之前,我可以手动检查产品是否存在于数据库中。
我认为M:M在大多数情况下是好的,但我不认为这有什么问题...老实说,我从来没有看到过这一点,但似乎比M:M关系更简单。顺便说一句,在插入之前检查数据库中是否存在该行没有看到大问题,我没有很多产品。
那么,你觉得第二种方法怎么样?

e4yzc0pl

e4yzc0pl1#

两种方法都很好......但最终取决于具体情况。如果您需要一个订单,包括一个被多次选择的产品,m:m关联表将是一个更好的解决方案。例如,产品是“T恤”,但尺寸不同。

相关问题