2011-07-14 14 views
1

可能かどうかわからない質問があります。テーブルの行を別のテーブルにマッピングする複数の行

私は3つのテーブル持って言うことができます:

オフィス:ID、名前

コンタクト:ID、FIRST_NAME、LAST_NAME、電子メール、

サイトoffice_id:ID、IP_ADDR、dns_addr、名前を、office_id

私は同じoffice_idの下に2つのサイトがあるとしましょうが、彼らは異なる連絡先を持っているとしましょう。 サイトの1つの行と連絡先の複数の行とをどのようにマップできますか?

私はdb architcureにあまり馴染んでいないので、多分私のdbテーブルを間違ってorgenized?

ありがとうございます。

+0

1つのサイトの連絡先も別のサイトの連絡先にすることはできますか?または、各連絡先には唯一のサイトがありますか? – RThomas

+0

それは問題ですか?あなたは私にyes \ noのオプションを与えることができますか? – RonenIL

+1

はい、それは重要です。連絡先が1つのサイトにしか関連していない場合は、連絡先とサイトをリンクする1つの外部キーを追加します。連絡先が複数のサイトに関連する可能性がある場合、関係を追跡するには、別のテーブルが必要です(下記の回答を参照)。 – RThomas

答えて

2

DBの現在の構造はSiteContactに一切関連付けません。両方ともofficeに関連しています。

あなたがしていることを行う最も簡単な方法は、Contact.idSite.idに関連付けるルックアップテーブルを作成することです。

この問題は、本来の完全性チェックがないことを意味します。同じオフィスに所属していないサイトに連絡先を関連付けることができます。ここでの大きな利点は、サイトごとに複数の連絡先を持つこと、または連絡先ごとに複数のサイトを持つことができることです。

関連する問題