来自不同表的2个主键作为另一个表中的一个外键

时间:2013-01-09 10:01:26

标签: mysql

是否可以将2个不同表中的2个主键组合到另一个表中的1个外键中?我有一个名为product_food的表,其中food_id为主键,product_drinks为drink_id作为主键,然后我想将food_id和drink_id组合为我的订单表中的外键作为product_ID?那可能吗?

2 个答案:

答案 0 :(得分:1)

您不应将其用作主键;定义不同的Product_Id主键。

如果您需要食品饮料产品的唯一性,只需将两列Food_Id和Drink_id添加到产品表中,将它们设置为外键,并在两者上添加唯一索引,以便无法添加新产品,由相同的食物饮料元组组成。

这是否足以满足您的初始需求?

答案 1 :(得分:1)

从头脑中我可以通过多种方式解决这个问题:

  1. 您可以在同一张桌子上获得食物和饮料,使用相同的ID,他们可能会使用不同的字段。
  2. 您制作的产品具有独特的ID,使食品和饮料具有产品ID。
  3. 在订单表上设置可为空的外键food_id,drink_id,并可能添加另一个字段,指明您要使用哪一个。