Rails外键设置问题

时间:2011-06-21 19:59:14

标签: ruby-on-rails ruby foreign-key-relationship

我只是(重新)开始玩Rails,我正在制作一个小卡片游戏应用程序。我似乎无法弄清楚我的外键设置 说我有4个物体:
- 游戏
- 球员
- 手
- 卡

游戏中有很多玩家,其中有很多牌都有很多牌。但这些牌也独立于手牌,球员和比赛 例如,我的数据库中有6张卡(1到6)。卡3可能在同一个游戏中的2个玩家手中。

如何为此设置密钥?我应该为“CardInHand”创建另一个对象来简化它吗?

2 个答案:

答案 0 :(得分:2)

牌与牌之间的关系是经典的Has And Belongs To Many(HABTM)。当你有一个HABTM关系时,需要有一个表来管理配对(hands_cards,比如说,只有一对id),但不需要有相应的模型。

(请注意,您需要创建一个迁移来自己生成hands_cards表;它不会自动创建。)

你可以选择创建一个单独的模型来表示手中的牌 - 这是has_many :through关系 - 但我只会在有特殊原因的情况下这样做将这种关系建模为具体对象。

答案 1 :(得分:1)

标准的Rails最佳实践不是在数据库中使用外键,而是在模型上使用验证来确保数据的正确性。

另一个答案解释了你想要设置的内容。