次の問題の解決策が必要です。これは、物事を複雑にすることなく、ベストプラクティスに従うことも理にかなっています。
リンクする必要のあるテーブルは、セクター、場所、会社の3つです。
つまり、会社「Bobs B&B」は、ロケーション「ニューヨーク」にあるセクター「宿泊施設」にあります。ホテルグループの場合、複数の場所にまたがる複数のセクターに1つの会社を置くことができます。
そこで、3つのテーブルをリンクする3つの主キーを持つ「 CompanySectorLocation 」テーブルを作成することにしました。
CompanySectorLocation
CompanyID (PK FK)
SectorID (PK FK)
LocationID (PK FK)
ここで曲がったボールは、場所が必要ないということです。
つまり、「ProteaHotels」は「Accomodation」セクターでアクティブであり、場所をNULLのままにします。
私の開発者は、 NULLFKを許可するテーブルを持つことに非常に反対しています。彼の提案は、場所が定義されていない会社とセクター間のリンクを処理するCompanySectorと呼ばれる別のテーブルを作成することです。
CompanySector
CompanyID (PK FK)
SectorID (PK FK)
これに関する私の問題は、データが効果的に複製された2つのテーブルを維持する必要があることです。
これを行うための最良の方法は何ですか?