Может ли вложенный набор иметь повторяющиеся дочерние объекты или несколько parent_id / root / узлов? - PullRequest
0 голосов
/ 20 февраля 2011

Может ли вложенный набор иметь дублирующиеся дочерние объекты или несколько parent_id / root / node?

Например, я хочу создать приложение, которое может управлять деталями и оборудованием.Однако конкретное оборудование может иметь те же детали, что и другое оборудование.

Есть ли у вас какие-либо соображения относительно наилучшего подхода?

Спасибо !!!

1 Ответ

0 голосов
/ 20 февраля 2011

Я думаю, что вам нужен здесь ассоциативный класс, чтобы помочь моделировать отношения «многие ко многим».В рельсах это может выглядеть примерно так:

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)
...