2

phpmyadminで2つの簡単なテーブルを作成しました。「コンテンツクリエーター」のリストと「コンテンツクリエータータイプ」のリスト。各「コンテンツクリエーター」には、複数の「コンテンツクリエータータイプ」を関連付けることができるため、これは1対多の関係です。phpmyadminで、次の関係を作成しました。

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

(phpmyadminのデータ挿入インターフェイスを使用して)テーブル「コンテンツクリエーター」にデータを挿入しようとすると、「コンテンツクリエータータイプID」の1つを選択できるドロップダウンが表示されます。ただし、各コンテンツ作成者に複数の「コンテンツ作成者タイプID」を追加できるようにしたいと思います。データ挿入インターフェースを使用してphpmyadmin内でこれを行うにはどうすればよいですか?

4

2 に答える 2

1

ここでは、1対多ではなく、多対多の関係があるようです。タイプテーブルとコンテンツクリエーターテーブルの両方に、外部キーを含む交差テーブルを追加する必要があります。

これを1対多の関係として実行したい場合は、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 に答える