使用MySQL 1到很多关系

时间:2011-07-06 21:42:54

标签: mysql database-design

我目前还没有任何代码。我理解1到很多联合关系是什么我只是不知道如何让它工作。这里的想法是许多运营商可以拥有该产品,反之亦然。如果每个表只有一个字段以保留其他ID,我如何跟踪哪些运营商拥有哪些产品?这是一个例子:

表:承运人

  • id
  • 名称
  • 的productID

表:产品

  • id
  • 名称
  • 描述
  • carrierID

3 个答案:

答案 0 :(得分:1)

迈克尔, 运营商表或产品表中包含太多信息。使用此表结构,您最终必须为每个运营商/产品和每个产品/运营商的产品线创建运营商线

考虑这一点的一种方法是有三个表:

表:承运人

  • ID
  • 名称

表:产品

  • ID
  • 姓名
  • 描述

表:product_carriers

  • CARRIER_ID
  • PRODUCT_ID

使用这种类型的结构,您可以从product_carriers表中获取所有信息,并且产品和运营商表对于每个产品和运营商而言都是唯一的,从而消除了重复信息并加快了查询速度。

答案 1 :(得分:0)

你有第三个表,包含了有关的载体和productid,并填充了关系

e.g。

cid,pid
1,1
1,2
2,1
2,4

运营商ID 1与产品ID 1和2相关 运营商ID 2与产品ID 1和4相关

产品ID 1与运营商ID 1和2相关

答案 2 :(得分:0)

这实际上是很多关系。许多运营商,每个运营商携带一个或多个(许多)产品。要实现此目的,您需要第3个表来生成链接:

carrier_products:
    carrier_id (foreign key to carriers) 
    product_id (foreign key to products)