私はすぐにデータベース設計の内外を学習しています (1 週間前の時点では、私にとっては初めてのことでした) が、すぐには明らかではないいくつかの質問に出くわしているので、明確にすることを望んでいました。 .
私が正しい質問は、外部キーに関するものです。設計の一部として、Companyテーブルがあります。もともと、アドレス情報をテーブル内に直接含めていましたが、3NF を実現することを望んでいたため、アドレス情報を独自のテーブルAddressに分割しました。データの整合性を維持するために、INT として「addressId」という名前の行をCompanyに作成しました。Addressテーブルには、対応する addressId が主キーとして含まれています。
私が少し混乱しているのは (または、正しく行っていることを確認したいこと)、どのテーブルをマスター (参照) テーブルにするか、どのテーブルを子 (参照) テーブルにするかを決定することです。最初にこれを設定したとき、Addressテーブルをマスターに、Companyを子にしました。ただし、会社ごとに 1 つのアドレスしか存在しないはずであり、会社の行が削除された場合は、対応するアドレスも削除 (CASCADE 削除) する必要があるため、これは間違っていると考えています。
私はこれに完全に間違ったアプローチをしている可能性があるため、外部キーを使用するときにテーブル間の関係をどのように考えるのが最善かについての良い経験則をいただければ幸いです。ありがとう!