我有一张名为 Player 的桌子
- 玩家ID (PK)
- 更多专栏
我想创建另一个与名为 PlayerExtraInfo 的 Player具有1 对 1关系的表以包含一些列。所以我有几个选择:
无需创建新表,而是将 PlayerExtraInfo 列添加到 Player 表
创建 PlayerExtraInfo 表并在 Player 表中有一个 FK。
玩家表
- 玩家ID (PK)
- 更多专栏
- PlayerExtraInfoID (FK)
PlayerExtraInfo表
- PlayerExtraInfo (PK)
- 更多专栏
相反:PlayerExtraInfo 包含一个 FK 到 Player 表。为了确保关系保持 1 对 1,我添加了一个独特的约束。
玩家表
- 玩家ID (PK)
- 更多专栏
PlayerExtraInfo表
- PlayerExtraInfo (PK)
- 更多专栏
- PlayerID(FK,唯一)
类似于选项 3,但将 PK 和 FK 合二为一。在这种情况下,我的外键也成为主键:
玩家表
- 玩家ID (PK)
- 更多专栏
PlayerExtraInfo表
- 玩家ID(PK,FK)
- 更多专栏
我知道选项 1、2 是正确的,但由于性能问题,我是选项 3 或 4 的选项。考虑到这 3 和 4 选项,我对选项 4 产生了一些疑问:所以我的问题是:
- 选项 3 和 4 是否正确?
- 选项 4 是否破坏任何正常形式?
- 还有其他我没有想到的选择吗?