ユーザーが連絡先を持つデータベースを作成しようとしています。以下の表を設計しましたが、1対多の関係であるように見えるため、関係がどのようになるべきかについて混乱していますが、多対多の関係でもあります。
データベースでは、各ユーザーは、連絡先がデータベース内の他のユーザーである連絡先テーブルを持っている必要があります。ただし、連絡先は各ユーザーに属している必要があります。
この場合の関係は何ですか?
ユーザーが連絡先を持つデータベースを作成しようとしています。以下の表を設計しましたが、1対多の関係であるように見えるため、関係がどのようになるべきかについて混乱していますが、多対多の関係でもあります。
データベースでは、各ユーザーは、連絡先がデータベース内の他のユーザーである連絡先テーブルを持っている必要があります。ただし、連絡先は各ユーザーに属している必要があります。
この場合の関係は何ですか?
この場合の関係は何ですか?
多対多。
連絡先テーブルには、owner_idとcontact_idがあります。これらの列をuser_1_idおよびuser_2_idと同じように簡単に呼び出すことができます。
列名を使用すると、contact_idには多くのowner_idを含めることができ、owner_idには多くのcontact_idを含めることができます。
連絡先テーブルのクラスタリング(プライマリ)インデックスは(owner_id、contact_id)です。また、Contactsテーブルに1つの一意のインデックス(contact_id、owner_id)を定義する必要があります。
連絡先は人であり、ユーザーも同様です(会社は法人です)。
人はユーザーの役割を果たすこともできないこともできます。
ある人は、ある期間にわたって他の人と関係を持つことができます。
party_relationship.typeの例は、「contactof」です。