双向自参考主动记录关联

时间:2016-01-04 01:14:10

标签: ruby-on-rails activerecord has-many-through self-reference bidirectional

第一周玩rails并且我对这种活跃的记录关系感到有些困惑

我现在有3张桌子,活动,战斗和战斗机。每场战斗都属于一场比赛,战士可以打很多场比赛。我希望能够在战斗表中存储信息,例如获胜者,如何赢得比赛,裁判等。

我一直在做一些研究,我认为我需要一个双向的自我指导有很多关于打架的关系。这是否需要通过表格中的2个条目?如果是这样,我怎样才能在查看每场战斗没有2条记录的事件时查询战斗?

如果我想在战斗机页面上显示战士记录,那么存储获胜者的最佳方式是什么?表中有wins_id和loser_id?当可以进行抽奖而没有比赛时,这会让人感到困惑。

也可能有没有结果的战斗因为它们还没有发生。我正在考虑为那些使用单独的表。

非常感谢任何建议! 干杯

1 个答案:

答案 0 :(得分:0)

我建议再添加一些表格:

<强>参与者

可以在一场比赛中支持两个以上的战士(不确定你的领域,但这可能对标记队摔跤有用)

  • fight_id - 战斗的外键(belongs_to)
  • fighter_id - 战斗的外键(belongs_to)

<强>决策

决定可能有很多信息,比如type =&#34; KO&#34;,&#34; TKO&#34;等。其他信息如Judges投票。抽签和不做决定不会在这里

  • fight_id - 战斗的外键(belongs_to)
  • winner_id
  • loser_id
  • dt - 达成决定的日期时间

编辑战斗以包含状态字段:

<强>战斗

  • 状态 - (决定,不决定,平局,取消,延期等)