2010-12-09 75 views
0

我有一个包含两个表,游戏和区域的数据库。我的目标是跟踪每个地区的游戏发布日期。当然,地区不会经常改变,但是最好为游戏中的每个地区创建一个新的列,或者在它们之间创建一个release_dates表?一对一关系/唯一密钥对

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

回答

3

我会去与release_dates表。如果某个特定区域没有获得发行版,这可以防止在游戏表中需要NULL值。

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

+0

+1我将交叉引用表命名为`games_regions`,因为将来可以添加更多的列,而不会使表名称变得混乱。另外,这是一个更常见的方式来命名交叉表(与`games_x_regions`一起)。 – webbiedave 2010-12-09 23:22:13

0

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