2017-03-14 17 views
0

は、それがレールに可能である(4,5)モデルとの間の関係のこの種類を設定する:レール:多く-T-多くの様々なモデルの間の関係

  • モデルAは、多くのモデルB
  • モデルを有していますBには多くのモデルがありますB

これらの関係には良いアプローチがあるのか​​、モデルデータを変更する方が良いのか分かりません。

+0

の可能性のある重複(http://stackoverflow.com/questions/2168442 /多対多関係 - 同一モデル - イン - レール) – Gerry

+0

@Gerry問題は、同じモデルの多対多ではないということです。同じモデル(B)は同時に別のモデルに属することができます。 –

答えて

1

最初の関係は標準一対多(あるいは多対多)の関係であり、2つ目は、「モデルBは、多くのモデルBを有する」Self Joinsにフィット:設計において

データモデルでは、時には に自身との関係を持つモデルを見つけることがあります。たとえば、すべての 従業員を1つのデータベースモデルに格納することができますが、マネージャと従業員の間のような の関係をトレースすることができます。この状況 は自己加入団体でモデル化することができます[?レールで同じモデルと多対多の関係]

class Employee < ApplicationRecord 
    has_many :subordinates, class_name: "Employee", 
          foreign_key: "manager_id" 

    belongs_to :manager, class_name: "Employee" 
end