ネストされたセットは、重複する子オブジェクトまたは複数のparent_id/root/nodes を持つことができますか?
例えば、部品や設備を管理できるアプリケーションを作りたい。ただし、特定の機器は、他の機器からの同じ部品を持つこともできます。
これに対する最善のアプローチについて何か考えはありますか?
ありがとうございました!!!
ネストされたセットは、重複する子オブジェクトまたは複数のparent_id/root/nodes を持つことができますか?
例えば、部品や設備を管理できるアプリケーションを作りたい。ただし、特定の機器は、他の機器からの同じ部品を持つこともできます。
これに対する最善のアプローチについて何か考えはありますか?
ありがとうございました!!!
ここで必要なのは、多対多の関係をモデル化するための関連付けクラスだと思います。レールでは、これは次のようになります。
class Equipment < ActiveRecord::Base
has_many :part_relationships
has_many :parts, :through => :part_relationships
end
class Part < ActiveRecord::Base
has_many :part_relationships
has_many :equipment, :through => :part_relationships
end
class PartRelationship < ActiveRecord::Base
belongs_to :equipment
belongs_to :part
end
これをモデル化する方法は他にもありますが (たとえば、ツリー型構造を使用する)、「セット」が必要な場合は、この方法を使用します。
これが完了すると、次のようなことができます。
e = Equipment.find(:first)
e.parts # Returns all the parts on this equipment, including shared
p = Part.find(:first)
p.equipment # Returns all equipment this part features in.
# Create a new relationship between e and p
PartRelationship.create(:equipment => e, :part => p)