親テーブルがあり、複数の子メール ID (番号不明) (主キー) を追加できます。また、子供は 1 つまたは 2 つの親メール ID (母/父) を持つことができます。
これは多対多の関係になりますか?
phpmyadmin でこの関係を構築する方法を教えてください。
親テーブルがあり、複数の子メール ID (番号不明) (主キー) を追加できます。また、子供は 1 つまたは 2 つの親メール ID (母/父) を持つことができます。
これは多対多の関係になりますか?
phpmyadmin でこの関係を構築する方法を教えてください。
MySQL などの通常のリレーショナル データベースにおける多対多の関係は、通常、クロス リンク テーブルを使用して構築されます。それは、他のテーブルのレコードに一緒にリンクするテーブルです。
たとえば、テーブル A と B がある場合、3 番目のテーブル C を作成します。このテーブルは (非常に単純化して) 次のようになります。
A B C
== == ====
A1 B1 A1B3
A2 B2 A2B1
A3 B3 A2B2
A3B2
したがって、このクロス リンク テーブルでは、B2 が A の 2 つのレコードにリンクされているのと同様に、レコード A2 が B の 2 つのレコードにリンクされていることがわかります。もちろん、このスキーマは単純化されています。A1 は実際にはテーブル A のキーフィールドであり、A1B1 は 2 つのフィールドで構成される主キーです。1 つはテーブル A のキーへの外部キー制約を持ち、もう 1 つはテーブル B への FK を持ちます。
常に多対多の関係である必要はありません。たとえば、人は親に対しても人であると言えます。実の親が 2 人を超える可能性はほとんどないため、person
afatherid
と amotherid
に行を指定しても問題ありません。どちらも同じperson
テーブルを参照しています。したがって、いつものように、それはあなたの正確なニーズに依存します.