Playerというテーブルが1つあります
- プレーヤーID (PK)
- その他の列
いくつかの列を含めるために、PlayerExtraInfo という名前の Player と1 対 1の関係を持つ別のテーブルを作成したいと考えています。したがって、いくつかのオプションがあります。
新しいテーブルを作成する代わりに、PlayerExtraInfo 列を Player テーブルに追加します。
PlayerExtraInfo テーブルを作成し、Player テーブルに FK を設定します。
プレイヤーテーブル
- プレーヤーID (PK)
- その他の列
- PlayerExtraInfoID (FK)
PlayerExtraInfoテーブル
- PlayerExtraInfo (PK)
- その他の列
反対: PlayerExtraInfo には、Player テーブルへの FK が含まれています。関係が 1 対 1 であることを確認するために、一意の制約を追加します。
プレイヤーテーブル
- プレーヤーID (PK)
- その他の列
PlayerExtraInfoテーブル
- PlayerExtraInfo (PK)
- その他の列
- PlayerID (FK、ユニーク)
オプション 3 に似ていますが、PK と FK を 1 つに混合します。この場合、外部キーも主キーになります。
プレイヤーテーブル
- プレーヤーID (PK)
- その他の列
PlayerExtraInfoテーブル
- PlayerID (PK、FK)
- その他の列
オプション 1、2 が正しいことはわかっていますが、パフォーマンスの問題により、オプション 3 または 4 を選択しています。これらの 3 と 4 のオプションについて考えると、オプション 4 についていくつか疑問が生じます。私の質問は次のとおりです。
- 選択肢 3 と 4 は正しいですか?
- オプション 4 は通常のフォームを壊しますか?
- 私が考えていなかった別のオプションはありますか?