Как правильно обрабатывать связь Active-Record «один-ко-многим» между одной моделью и одной другой моделью, выбранной из группы? - PullRequest
0 голосов
/ 04 марта 2019

Вот базовая схема моделей, с которыми я сейчас работаю, и то, как мне нужно, чтобы они были связаны:

data model diagram

Сами моделив значительной степени неважны, но я бы хотел иметь возможность ассоциировать Contracts с одной (и только с одной) другой моделью (Account, Location или Region).Бизнес-логика похожа, но различна в зависимости от ассоциации.

Моей первой мыслью было бы выбрать то, что может быть наивным подходом, и установить внешний ключ на Contract для связанной модели и указать, какоймодель, которая указывает на использование внешнего ключа enum.

Есть ли рекомендуемый способ сделать это с точки зрения архитектуры?Должен ли я сделать шаг назад и подумать, какие дизайнерские решения побудили меня задать этот вопрос в первую очередь?

Я использую Rails 5.2.2 и последнюю версию PostgreSQL.

1 Ответ

0 голосов
/ 04 марта 2019

Я бы рассмотрел полиморфную ассоциацию.Вы можете применять аналогичные методы в зависимости от типа контракта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...