一对一关系/唯一密钥对

时间:2010-12-09 22:30:07

标签: php mysql database-design innodb normalization

我有一个包含两个表,游戏和地区的数据库。我的目标是跟踪每个地区的游戏发布日期。

当然,区域不会经常变化,但是为游戏中的每个区域创建一个新列,或者在它们之间创建一个release_dates表会更好吗?

如果我在它们之间创建一个新表格,我如何确保每个地区/游戏对只有一个发布日期?

2 个答案:

答案 0 :(得分:3)

我会使用release_dates表。这样可以防止游戏桌中出现NULL值,例如,某个特定区域没有获得释放。

在release_dates表中,您可以将region_id设为外键,将game_id设为外键,然后将(game_id,region_id)设为release_dates表的 primary 键。这将确保每个(game_id,region_id)组合只出现一次。

答案 1 :(得分:0)

这是一种多对多的关系。包含game_id和region_id的中间联结表是正确的解决方案。

相关问题