0

親テーブルがあり、複数の子メール ID (番号不明) (主キー) を追加できます。また、子供は 1 つまたは 2 つの親メール ID (母/父) を持つことができます。

これは多対多の関係になりますか?

phpmyadmin でこの関係を構築する方法を教えてください。

4

1 に答える 1

0

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 人を超える可能性はほとんどないため、personafatheridと amotheridに行を指定しても問題ありません。どちらも同じpersonテーブルを参照しています。したがって、いつものように、それはあなたの正確なニーズに依存します.

于 2013-07-05T19:09:00.070 に答える