Ruby on rails 双向自参考活动记录关联

Ruby on rails 双向自参考活动记录关联,ruby-on-rails,activerecord,has-many-through,self-reference,bidirectional,Ruby On Rails,Activerecord,Has Many Through,Self Reference,Bidirectional,在玩rails的第一周,我就有点陷入了这种活跃的关系 我现在有3张桌子,比赛,拳击和拳击。每一场战斗都属于一个事件,战士可以进行多次战斗。我希望能够在比赛表中存储信息,例如胜利者、如何赢得比赛、裁判等 我一直在做一些研究,我想我需要一个双向的自我参照,因为它与战斗有很多贯穿关系。这是否需要在直通表中输入两个条目?如果是这样的话,我如何在观看一个没有2条记录的比赛时查询每场比赛 如果我想在拳手页面上显示拳手记录,那么存储获胜者的最佳方式是什么?桌上有赢家和输家吗?当有平局而没有比赛时,这会让人困惑

在玩rails的第一周,我就有点陷入了这种活跃的关系

我现在有3张桌子,比赛,拳击和拳击。每一场战斗都属于一个事件,战士可以进行多次战斗。我希望能够在比赛表中存储信息,例如胜利者、如何赢得比赛、裁判等

我一直在做一些研究,我想我需要一个双向的自我参照,因为它与战斗有很多贯穿关系。这是否需要在直通表中输入两个条目?如果是这样的话,我如何在观看一个没有2条记录的比赛时查询每场比赛

如果我想在拳手页面上显示拳手记录,那么存储获胜者的最佳方式是什么?桌上有赢家和输家吗?当有平局而没有比赛时,这会让人困惑

也可能有没有结果的战斗,因为他们还没有发生。我想用一张单独的桌子来放这些东西

非常感谢您的任何建议!
干杯

我建议再增加几张桌子:

参与者

在一场比赛中可以支持两名以上的拳击手(不确定你的领域,但这对团队摔跤很有用)

  • 战斗id-战斗外键(属于)
  • fighter_id-战斗外键(属于)
决策

该裁决可能包含大量信息,如type=“KO”、“TKO”等。其他信息如法官投票。平局,没有决定不去这里

  • 战斗id-战斗外键(属于)
  • 类型
  • 优胜者身份证
  • 失败者身份证
  • dt-达成决策的日期时间
和编辑战斗以包含状态字段:

打架

  • 状态-(决定、无决定、提款、取消、延期等)