У меня очень похожий сценарий использования, и решение должно было иметь (используя имена ваших сущностей):
- коллекцию с людьми
- встроенную модель BusinessPerson, которая
belongs_to_related :person
- коллекция с предприятиями, которые
embeds_many :busiess_people
Идея заключалась в том, что у меня есть дополнительные поля в BusinessPerson, которые могут не применяться, если это лицо также ведет другой бизнес.Скажем, роль в этом бизнесе, адрес электронной почты или доля этого.
Нет, вы не могли бы сказать, что получение бизнеса для человека может показаться сложным, но это не так:
class Person
def businesses
Business.where('business_people._id' => self.id)
end
end