不使用PK SQL在两列之间创建关系
我有两张表,一张是名为Game,另一张是GameStats 游戏设计不使用PK SQL在两列之间创建关系,sql,linq,database-design,relationships,Sql,Linq,Database Design,Relationships,我有两张表,一张是名为Game,另一张是GameStats 游戏设计 GameId (PK) GameGuid MatchDate TeamZeroScore TeamOneScore Active 游戏统计设计 GameStatsId (PK) GameGuid TeamId Name Kills Deaths Assists Active 一场游戏可以有很多游戏统计数据。所以我的问题是,是否有任何方法可以使用GameGuid字段在游戏和Gamestats之间建立关系,即使它们不是主键?您
GameId (PK)
GameGuid
MatchDate
TeamZeroScore
TeamOneScore
Active
游戏统计设计
GameStatsId (PK)
GameGuid
TeamId
Name
Kills
Deaths
Assists
Active
一场游戏可以有很多游戏统计数据。所以我的问题是,是否有任何方法可以使用GameGuid字段在游戏和Gamestats之间建立关系,即使它们不是主键?您可以,但我不推荐这样做。通常,可以使用主键或唯一键(其中键实际上可以由多列组成)设置与另一个表的外键关系 但是,您不希望在表中存储冗余数据。因此,如果
GameId
是Game
的主键,那么第二个表应该是:
GameStatsId (PK)
GameId references Game(GameId)
TeamId
Name
Kills
Deaths
Assists
Active
您可以通过执行连接来查找GameGuid
另一方面,如果您想使用
GameGuid
作为主键,则可以使用该键并删除GameId
,,但我不推荐这样做。通常,可以使用主键或唯一键(其中键实际上可以由多列组成)设置与另一个表的外键关系
但是,您不希望在表中存储冗余数据。因此,如果GameId
是Game
的主键,那么第二个表应该是:
GameStatsId (PK)
GameId references Game(GameId)
TeamId
Name
Kills
Deaths
Assists
Active
您可以通过执行连接来查找GameGuid
另一方面,如果您想使用
GameGuid
作为主键,请使用该键并删除GameId
,谢谢您的快速回复。我想我会将GameId添加到GameStats表中。但这会引入现有数据的问题,我需要遍历所有Gamestats数据,并通过相同的GameGuidHanks添加匹配的游戏id,以便快速回复。我想我会将GameId添加到GameStats表中。但是这引入了现有数据的问题,我需要遍历所有Gamestats数据,并通过相同的gameguid添加匹配的游戏id