如何解决Rails外键设置问题
| 我只是(重新)开始使用Rails,并且正在制作一个小型纸牌游戏应用。我似乎无法弄清楚我的外键设置。 假设我有4个对象: - 游戏 -玩家 -手 -卡 一个游戏有很多玩家,有很多手,有很多卡。但是这些牌也独立于手牌,牌手和游戏。 例如,我的数据库中有6张卡(1到6)。卡3可能在同一游戏中处于2个玩家手中。 如何为此设置密钥?我是否应该为\“ CardInHand \”创建另一个对象以简化它?解决方法
卡和手之间的关系是经典的
Has And Belongs To Many
(HABTM)。当您具有HABTM关系时,需要一个表来管理配对(例如,hands_cards中仅包含成对的ID),但是不需要相应的模型。
(请注意,您将需要创建一个迁移来自己生成hands_cards表;它不会自动创建。)
正如您说的那样,您确实可以选择创建一个单独的模型来代表一张在手的卡片-这是has_many :through
关系-但是我仅在有特殊原因将此关系建模为一个具体的对象。
, Rails的标准最佳实践不是在数据库中使用外键,而是在模型上使用验证以确保数据正确性。
另一个答案说明了您要设置的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。