Sql 数据库-表之间的关系
我是数据库新手,所以理解某些东西有点困难 我的主要怀疑是关于一种情况 一个(愚蠢的)例子: 我有一张总统桌和另一张选举桌 主席: 主席 名称 出生日期 选举: 选举ID 选举日期 总统可以参加许多选举,只要他们来自不同的国家 我要做的新桌子的设计是什么 如果这很简单,很抱歉,但我不知道如何解决这个问题。Sql 数据库-表之间的关系,sql,database,database-design,Sql,Database,Database Design,我是数据库新手,所以理解某些东西有点困难 我的主要怀疑是关于一种情况 一个(愚蠢的)例子: 我有一张总统桌和另一张选举桌 主席: 主席 名称 出生日期 选举: 选举ID 选举日期 总统可以参加许多选举,只要他们来自不同的国家 我要做的新桌子的设计是什么 如果这很简单,很抱歉,但我不知道如何解决这个问题。选举总统 ElectionPresident ------------------ PresidentID <--PK, FK to President ElectionID <-
选举总统
ElectionPresident
------------------
PresidentID <--PK, FK to President
ElectionID <-- PK, FK to Election
------------------
PresidentID没有解决国家/地区的限制。因此,一个表格选举President只有这两个FK,没有更多列?没有PK?@wormwood87请看我的编辑,该表格上有一个复合PK。如果你指的是单一的代理PK,那是你的选择。如果您这样做,那么您应该在(PresidentID,ElectionID)
上放置一个唯一的索引。这样更好,但是您最好在选举表中引用国家ID,因为否则我可以说我在同一个国家参加了两次选举,但在此列中错误地提供了错误的国家ID。我们可以通过传递性假设,如果约束条件在选举表上,则country ID是对countries表的有效引用。
ElectionPresident
------------------
PresidentID <--PK, FK to President
ElectionID <-- PK, FK to Election
CountryID <-- FK to Country