2

我在 phpmyadmin 中创建了两个简单的表。“内容创建者”列表和“内容创建者类型”列表。每个“内容创建者”可以有多个与之关联的“内容创建者类型”,因此这是一对多的关系。在 phpmyadmin 中,我创建了以下关系。

ALTER TABLE  `contentcreator` 
ADD FOREIGN KEY (  `ContCreat_TypeID` ) 
  REFERENCES `MyDatabase`.`contentcreator_types` (`ContCreat_TypeID`) 
  ON DELETE RESTRICT ON UPDATE RESTRICT ;

现在,当我尝试将数据(使用 phpmyadmin 中的插入数据接口)插入到表“内容创建者”中时 - 我得到一个下拉菜单,允许我选择“内容创建者类型 ID”之一。但是,我希望能够为每个内容创建者添加多个“内容创建者类型 ID”。如何使用插入数据接口在 phpmyadmin 中执行此操作?

4

2 回答 2

1

听起来你在这里有一个多对多的关系,而不是一对多。您需要将带有外键的交集表添加到您的类型表和内容创建者表中。

如果您想将其作为一对多关系来执行,则多的一方获得外键,而不是一的一方。这意味着您将在内容创建者类型表上拥有内容创建者表的外键。然后,每个内容创建者都会在类型表中为其拥有的每种类型获取一个新条目,但是在这种情况下您会出现重复。

多对多:

ContentCreatorID CreatorName
---------------- ------------------
1                Creator1
2                Creator2
3                Creator3

CreatorTypes (intersection Table)


ContentCreatorID TypeID
---------------- ------------------
1                1
1                2
2                3
3                2


Types

TypeID            TypeName
---------------- ------------------
1                 Type1
2                 Type2
3                 Type3
于 2012-07-13T16:35:18.547 回答
0

您可能需要考虑创建一个映射表以将创建者与其类型相关联

    creator table
    id | creator

    type table
    id | type

    mapping table
    creator_id | type_id
于 2012-07-13T16:40:59.323 回答