0

嵌套集可以有重复的子对象或多个 parent_id/root/nodes 吗?

例如,我想创建一个可以管理零件和设备的应用程序。但是,特定设备也可以具有来自其他设备的相同部件。

对此最好的方法有什么想法吗?

谢谢!!!

4

1 回答 1

0

我认为您在这里需要的是一个关联类来帮助建模多对多关系。在 Rails 中,这可能看起来像这样:

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)
于 2011-02-20T09:56:06.027 回答