Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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_Phpmyadmin_Foreign Keys - Fatal编程技术网

Mysql 多个记录的外键

Mysql 多个记录的外键,mysql,phpmyadmin,foreign-keys,Mysql,Phpmyadmin,Foreign Keys,我有两张这样的桌子: Table1 | itemid (PK)| | typeid (FK)| | item count | Table2 | typeid (PK)| | type name | 表2中有4-5条记录。。。我被困在这一点上。。。基本上,该项可以是所有类型(它可以有typeid(FK)=NULL或全部4-5)。我就是想不通。当我将新项目添加到表1(使用phpmyAdmin ui)时,我可以选择一个FK作为下拉列表。。但是如果物

我有两张这样的桌子:

Table1
| itemid (PK)|    
| typeid (FK)|     
| item count |     

Table2        
| typeid (PK)|  
| type name  |

表2中有4-5条记录。。。我被困在这一点上。。。基本上,该项可以是所有类型(它可以有typeid(FK)=NULL或全部4-5)。我就是想不通。当我将新项目添加到表1(使用phpmyAdmin ui)时,我可以选择一个FK作为下拉列表。。但是如果物品有两种或三种类型怎么办。。?这可能是小菜一碟,但我的大脑已经停滞了。。。最好的方法是什么?

您的设计支持一对多关系。也许,您需要表1和表2之间的多对多关系。如果是,则需要添加新的链接表:

Table3:
itemid(FK) 
typeid(FK)

您可以在
Table1
中的
itemid
typeid
上定义复合键


这允许对itemid和typeid值进行1-1、1-2、3-1、3-4等组合。

即使您的问题也不太清楚,但据我所知,您无法在子表(表1)中插入记录,因为主表(表2)中不存在记录

所以首先需要在主表(表2)中添加所需的typeid,然后才能在其子表中输入


如果您的要求有所不同,请详细说明,以便您可以从社区获得更好的帮助。

谢谢Wasim!我不确定这是否是最好的选择,但你已经向我保证了。在关系数据库设计中,这是创建另一个链接表以支持多对多关系的常见准则。