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

时间:2016-01-30 15:23:43

标签: sql linq database-design relationships

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

游戏设计

GameId (PK)
GameGuid
MatchDate
TeamZeroScore
TeamOneScore
Active

GameStats Design

GameStatsId (PK)
GameGuid
TeamId
Name
Kills
Deaths
Assists
Active

游戏可以有很多游戏统计数据。所以我的问题是有没有办法在游戏和Gamestats之间使用GameGuid字段建立关系,即使它们不是主键?

1 个答案:

答案 0 :(得分:2)

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

但是,您不希望在表中存储冗余数据。因此,如果GameIdGame的主键,则第二个表应为:

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

您可以通过加入来查找GameGuid

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