私はサッカーの統計アプリケーションを設計しています。ゲーム(試合)の結果を保存することに固執しました。Team オブジェクトと Game オブジェクトがあります。まず、ゲームモデルを次のようにします
class Game
include Mongoid::Document
belongs_to :team_1, class_name: "Team"
belongs_to :team_2, class_name: "Team"
field :score_1, type: Integer
field :score_2, type: Integer
しかし、すべてのチームの試合を見つけることはできません。次に、次のようなことをすることにしました。
class Game
include Mongoid::Document
has_and_belongs_to_many :teams
field :scores, type: Array
しかし、チームの順序がスコアと一致しないように見え、醜く見えます。次に、チームとそのスコアを格納するためのモデル Score を作成しました。Game モデルには多くの Score がありましたが、これは前のものよりも醜いです。