【发布时间】:2014-03-27 18:14:50
【问题描述】:
我正在制定一个数据库计划,我对规范化到第二范式有点困惑。我也担心大量的列,我无法正确地弄清楚如何处理它们。
这是我关注的表MatchDetails:
想法 1
Player_ID 是另一个表 Users 的唯一主键。 MatchID 是表 Matches 的唯一主键。 Matches 和 Players 之间的关系是多对多的。
这可以用作复合键吗?从某种意义上说,一名球员只能参加一次特定比赛? MatchID 右侧的列是否对复合键有功能依赖,因为它们对于该复合键是唯一的?
想法 2
在此示例中,Participation_ID 是表的唯一主键,因为对于玩家和比赛的各种组合,可以有多个相同的Player_ID 和相同的MatchID 实例。
在这个例子中,我猜这个列是第二范式,因为只有一个主键,匹配值是唯一的,因此在功能上是依赖的?尽管我尝试阅读它here,但我对功能依赖有点困惑。
哦,还有一件小事……
我有点怀疑的最后一件事是大量的列。 MatchID 右侧的所有信息都是有关球员 (Player_ID) 在比赛 (MatchID) 中表现的详细信息。他们应该在另一张桌子上吗?
如果您想查看目前的布局,请链接到其他表格:http://i.imgur.com/52ax04g.png
请忽略 MatchID 没有下划线而其他 ID 有,这只是一个 excel 计划!
【问题讨论】:
标签: database database-design database-normalization