Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 不同表中的两个主键作为另一个表中的一个外键_Mysql - Fatal编程技术网

Mysql 不同表中的两个主键作为另一个表中的一个外键

Mysql 不同表中的两个主键作为另一个表中的一个外键,mysql,Mysql,是否可以将2个不同表中的2个主键组合成另一个表中的1个外键?我有一个名为product_food的表,其中food_id为主键,product_DINGES的DROUNT_id为主键,然后我想在我的orders表中将food_id和DROUNT_id作为外键组合为product_id?可能吗 您不应该将其用作主键;定义不同的产品Id主键 如果需要食品饮料产品的唯一性,只需将两列food_Id和drink_Id添加到products表中,将它们设置为外键,并在这两列上添加唯一索引,这样就无法添加由

是否可以将2个不同表中的2个主键组合成另一个表中的1个外键?我有一个名为product_food的表,其中food_id为主键,product_DINGES的DROUNT_id为主键,然后我想在我的orders表中将food_id和DROUNT_id作为外键组合为product_id?可能吗

您不应该将其用作主键;定义不同的产品Id主键

如果需要食品饮料产品的唯一性,只需将两列food_Id和drink_Id添加到products表中,将它们设置为外键,并在这两列上添加唯一索引,这样就无法添加由相同食品饮料元组组成的新产品


这能满足您最初的需要吗?

从我的角度来看,有很多方法可以解决这个问题:

  • 您在同一张桌子上获得食物和饮料,使用相同的id,它们可能使用不同的字段
  • 您可以使用唯一id创建一个表产品,并使食品和饮料具有产品id
  • 在orders表上创建可为空的外键food_id、drink_id,并可能添加另一个字段,指示您将使用哪个字段