在ActiveRecord

时间:2015-11-19 03:14:52

标签: ruby-on-rails activerecord

有三组实体:PlayersTeamsGames。团队可能由一个或两个Players组成,并为每个特定Game自愿组建,即 玩家A,B,C,D可以形成11 Teams,因为Team AB与Team BA相同。 据说Teams可能只包含一组独特的参与者 - BA是AB的重复。

形成TeamsGames关系最明显的方式是尽可能多的,但这是一种方法吗?真正的问题是如何以强大和可扩展的方式对这些限制进行建模,因此他们可以处理,比如说,一个不仅仅有1-2名球员的球队,而且还有一支1-20名球员没有(很多)增强的球队?

这是一个我想到的抽象界面 -

Team.find_or_create_by(player_ids: [p1.id, p2.id]) # find p1 and p2 team
Team.find_by(player_id: p1) # find all teams that p1 has participated in

P.S。我不认为问题标题真的很好,可能这是众所周知的问题,它有一个确定的名称,所以如果有人能指出它我会很高兴交换标题。

0 个答案:

没有答案