@Sahnen

Как выбрать необходимые ассоциации?

Например, есть система статистики. Состоит из таких моделей:
- Регион (Region)
- Сфера деятельности (Job). Например: производство, торговля, услуги и т.д.
- Уточнение вида деятельности (JobItem). Например, если речь идет о услугах: рекламные, перевозки, ремонты и т.д.
- Конкретная статистическая единица (Company). Например, конкретное предприятие.

Напрашиваются следующие зависимости:
Job - JobItem все понятно - has_many/belongs_to
А дальше не все понятно.
Набор Job/JobItem может присутствовать в любом регионе и от региона к региону не меняется. Т.е. has_many/belongs_to между Region и Job смысла нет устанавливать.
Company, в свою очередь, напрямую зависит, с одной стороны от Region(может принадлежать только одному региону), с другой стороны также напрямую принадлежит только одному JobItem (например главный вид деятельности)

Естественно, хотелось бы потом применять различные фильтры. Например:
- Предприятия, оказывающие рекламные услуги во всех регионах
- Предприятия, оказывающие рекламные услуги в определенном регионе
- Все предприятия в определенном регионе
- Все предприятия в определенном регионе, которые занимаются торговлей
и т. д.

Можно, конечно, обойтись вообще без ассоциаций, но хотелось бы гибкости, чтобы не загромождать код на каждое условие кучей цепочек запросов. Возможно можно по уму настроить ассоциации?
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
LightAlloy
@LightAlloy
Ruby developer
Не понимаю, в чём проблема:

Company/JobItem - belongs_to/has_many
Company/Region - belongs_to/has_many

Region и JobItem никак не связаны.

В реальной жизни часто бывает, что компании занимаются несколькими видами деятельности, но это уже другая проблема.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы