2017-10-07 18 views
0

私は非常にSQLに新しいですし、私はいくつかの関係を作ろうとしており、次のようなことを見つけようとしています。SQLの多対多関係

私は3つのテーブル 持っている - 人 - の電話番号 - PhoneNumberCategories

者との電話番号等の自己私が思うの説明と私はPHONENUMBERはオフィスのためであるかどうかを示すために使用PhoneNumberCategories、自宅、携帯電話、ファックスで

ここでは、この多対多の関係を作るために4番目のテーブルを作成しました。このテーブルには、4つの列があります。

  • ID
  • PERSONID
  • PhoneNumberID
  • PhoneNumberCategoryID

をそして私はここで設定したアップ3の関係を持っています。 ID列以外のすべての列に1つそれは動作するようだが、それはちょうど私に奇妙な感じを与える。私がライト・トラックにいるかどうか、またはこれについてすべて間違っているかどうか誰かに教えてもらえますか?

私がこれをしたい理由は次のとおりです。もちろん私は人を電話番号にリンクさせる必要があります。しかし、一般的なオフィス(これは「OfficeGeneral」の行になる)番号の電話番号を持っている可能性があります。そのため、私がそこで働いているため私にリンクしています。私はまた、直属のオフィス(これは行の 'OfficeDirect')の番号になります。これはもちろん、私にもつながっています。しかし、一般的な数字は、オフィス内のすべての人々に「OfficeGeneral」とリンクしています。受付を除いて、ここでは「OfficeDirect」としてリンクされます。そして、これが私がこの多対多の関係を考え出した理由です。私はウェブ上でそれについて多くを見つけることができません。そして、これが正しい方法であるかどうかを疑うほどの理由です。とにかく、これは単なる例です。私は柔軟性があり、可能な限り多くの例外をキャッチできることを確認したいと思います。私は、データベースが使用されると、人々が私が予期していない状況が来ることを確信しています。私は何年にもわたって学んできたことを人々はよくしています。以下のコメントに反応して

明確化:

  • 人以上の1のPhoneNumberを持つことができます。
  • PhoneNumberは1人以上の人を持つことができます。
  • PhoneNumberを持つ人は1つ以上のPhoneNumberCategoryを持つことができます。電話番号とFAXの両方に専用電話が使用されます。
  • PhoneNumberCategoryが異なる複数の人が同じPhoneNumberにリンクできます。 (私のためのOfficeMainは受付のためのOfficDirectです。)

皆さんからお待ちしております。

答えて

1

お使いのモデルは正常です。あなたの説明は、おそらく、そうではありません。

PersonPhoneNumberは多対多の関係にあります。この関係は、特定の電話番号が複数のカテゴリに属していない限り、PhoneNumberCategoryで1の多くです。

Person/PhoneNumberは、この表で一意であると宣言されるため、特定の電話番号を1回しか使用できません。しかし、それはあなたが構造を見ている方法ではないかもしれません。

+0

お返事ありがとうございます。私は明確ではないと約束した。それに応じて投稿を更新します。 –