Database 如何设计我的数据库?
我想创建一个足球成绩数据库 显然,我们有:Database 如何设计我的数据库?,database,Database,我想创建一个足球成绩数据库 显然,我们有: 国家(荷兰、德国,(还有欧洲)) 比赛(欧洲联赛、德甲、欧足联) 球队(特温特、拜仁慕尼黑、马德里竞技) 球员(卢克·德容、曼努埃尔·诺伊尔、蒂亚戈·门德斯) 比赛(特温特-埃因霍温、拜仁-勒沃库森等) 事件(卢克·德容在第40分钟进球) 我正在使用Dezing,我在其中创建了以下方案: 显然,一场比赛对一个国家、一名球员对一支球队等都是有约束力的 但随后出现了一些问题。事件属于一场比赛和一名球员。因此,事件可以获得一个匹配id和一个玩家id。但
- 国家(荷兰、德国,(还有欧洲))
- 比赛(欧洲联赛、德甲、欧足联)
- 球队(特温特、拜仁慕尼黑、马德里竞技)
- 球员(卢克·德容、曼努埃尔·诺伊尔、蒂亚戈·门德斯)
- 比赛(特温特-埃因霍温、拜仁-勒沃库森等)
- 事件(卢克·德容在第40分钟进球)
匹配id
和一个玩家id
。但是任何球队的任何球员都可以在他不属于的比赛中“得分”(C队的球员可以在a队和B队之间的比赛中得分)。例如,我如何限制这一点
此外,一支球队可以参加“正常”比赛,也可以参加冠军联赛。因此,团队实体中的简单竞争id是不够的
你还有其他想法吗
编辑以响应Philipp
您缺少一个实体来表达
阵容(团队、比赛)
以及阵容(阵容、球员)
然后,您可以将
事件
与阵容
(特定比赛中的特定球员)相关联,从而通过阵容
->将事件
链接到正确的比赛
阵容
您缺少一个实体来表达阵容(团队,比赛)
以及一个阵容位置(阵容,球员)
然后,您可以将事件
与阵容
(特定比赛中的特定球员)关联,从而通过阵容
->阵容
->匹配
将您的事件
链接到正确的匹配
,您的意思是这样的吗?我可以看到,这确实会为球员在比赛之外的得分问题起到作用。但是我如何限制两个以上的阵容
具有相同的匹配id
?在阵容中没有匹配id
,而是在匹配中有主阵容id
和客场阵容id
。这样你每场比赛只能有两个阵容,而且你不会丢失主客场信息。我已经再次编辑了图像。非常感谢,我想我还有最后一个问题。当我在LineupPosition
中创建条目时,我可以将多个球队的球员添加到同一lineupid
。这可能会派上用场(例如,国家队),但对于“正常”比赛来说,这是不可能的。有什么想法吗?有点晚了,但很抱歉,不知道如何在数据库级别强制执行此操作。请参阅有问题的添加图像,您是指类似的内容吗?我可以看到,这确实会为球员在比赛之外的得分问题起到作用。但是我如何限制两个以上的阵容
具有相同的匹配id
?在阵容中没有匹配id
,而是在匹配中有主阵容id
和客场阵容id
。这样你每场比赛只能有两个阵容,而且你不会丢失主客场信息。我已经再次编辑了图像。非常感谢,我想我还有最后一个问题。当我在LineupPosition
中创建条目时,我可以将多个球队的球员添加到同一lineupid
。这可能会派上用场(例如,国家队),但对于“正常”比赛来说,这是不可能的。有什么想法吗?有点晚了,但很抱歉,不知道如何在数据库级别强制执行此操作。