@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 никак не связаны.

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

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

Войти через центр авторизации
Похожие вопросы