【问题标题】:Foreign key to multiple records多条记录的外键
【发布时间】:2014-03-21 04:34:05
【问题描述】:

我有两张这样的表:

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

Table2        
| typeid (PK)|  
| type name  |

Table2 中有 4-5 条记录。 ...而且我被困在这一点上...基本上该项目可以是所有类型(它可以具有 typeid (FK) = NULL 或全部 4-5)。我只是无法理解这个..当我将新项目添加到 Table1(使用 phpmyAdmin ui)时,它让我可以选择一个 FK 作为下拉列表.. 但是如果项目是两个或三种类型..?这可能是小菜一碟,但我的大脑已经停滞不前了……最好的方法是什么?

【问题讨论】:

    标签: mysql phpmyadmin foreign-keys


    【解决方案1】:

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

    Table3:
    itemid(FK) 
    typeid(FK)
    

    【讨论】:

    • 感谢瓦西姆!我不确定这是否是最好的选择,但你让我放心了。
    • 在关系数据库设计中,这是创建另一个链接表以支持多对多关系的常见准则。
    【解决方案2】:

    您可以在Table1 中定义itemidtypeid 的复合键。

    这允许在 itemid 和 typeid 值上组合 1-1、1-2、3-1、3-4 等。

    【讨论】:

      【解决方案3】:

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

      所以首先你需要在主表(table2)中添加所需的typeid,然后你可以在它的子表中输入。

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

      【讨论】:

        猜你喜欢
        • 2014-04-19
        • 1970-01-01
        • 2014-05-07
        • 1970-01-01
        • 1970-01-01
        • 2017-03-03
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多