在不使用 PK SQL 的两列之间创建关系

Create Relationship Between Two Columns Not Using PK SQL

我有两个表,一个名为 Game,另一个名为 GameStats。

游戏设计

GameId (PK)
GameGuid
MatchDate
TeamZeroScore
TeamOneScore
Active

GameStats 设计

GameStatsId (PK)
GameGuid
TeamId
Name
Kills
Deaths
Assists
Active

一个游戏可以有很多游戏数据。所以我的问题是有什么方法可以使用 GameGuid 字段在 Game 和 Gamestats 之间建立关系,即使它们不是主键?

可以,但我不推荐。通常,您可以使用主键或唯一键(其中键实际上可以包含多个列)来设置与另一个 table 的外键关系。

但是,您不想在 table 中存储冗余数据。所以,如果 GameIdGame 的主键,那么第二个 table 应该是:

GameStatsId (PK)
GameId references Game(GameId)
TeamId
Name
Kills
Deaths
Assists
Active

您可以通过连接查找 GameGuid

另一方面,如果您想使用 GameGuid 作为主键,则使用它并删除 GameId