【发布时间】:2016-05-08 08:26:16
【问题描述】:
我正在布置一个数据库设计,并且有一个关于创建复合 ID 的问题。我坚持的数据库部分是一个“圆形”表。
数据库的目标是存储综合格斗比赛的结果,以便进行统计分析。
在每场比赛中,每场比赛都有三名裁判来得分。我认为我最好的方法是创建一个对每个“fightID_FK”+“fighterID_FK”+“judgeID_FK”+“roundNum”都是唯一的“回合”表。我的想法是创建这 4 列的组合来创建一个 PK。该表中唯一的另一列将是“roundScore”,这是裁判在第 1、2、3、4 或 5 轮比赛中给拳击手的分数。
这是解决此问题的最佳方法吗?有什么我没有考虑的因素吗?
【问题讨论】:
-
复合键不意味着将 4 列连接为 1。复合键是跨多列的键。您应该添加一个包含所有 4 列的键约束。
-
是的,我明白,我将上面的列连接起来只是为了展示我的想法。我想我的问题是 - 如果在 4 行之间添加一个键约束与仅使用一个自动增加的列来标识这些行中的每一行,是否存在固有缺陷或缺点?
标签: sql database-design database-normalization composite-primary-key