1

現時点ではデータベースを構築していませんが、ER ダイアグラムとテーブルのリストを使用してデータベースの計画について学習している段階です。

1 対 1 の関係とは何か、いつ使用するか、いつ避けるべきかなどを理解しています。理解できないのは、それらがどのように実装されているかです。どちらも同じ主キーを持っていますか? それとも、単に多対多の関係のように外部キーを配置するだけですか?

4

1 に答える 1

3

通常、テーブルの 1 つで、他のテーブルの主キーを指す null 以外の外部キーとしてこれを実装し、この外部キーに一意の制約を追加します。

チェック制約を追加して、テーブルのすべての外部キーが他のテーブルの主キーとして表示されるようにすることもできますが、そうすると、2 つのテーブルの項目の追加と削除がかなり難しくなります。

他の 2 つのオプションは次のとおりです。

  • 両方のエンティティを組み合わせて 1 つのテーブルを作成します。しかし、これはエンティティの概念とデータの分離に反します。
  • 通常の多対多の実装を行い、上記のように制約を介して 1 対 1 を強制します。
于 2013-01-11T19:34:57.677 に答える