Вот базовая схема моделей, с которыми я сейчас работаю, и то, как мне нужно, чтобы они были связаны:
Сами моделив значительной степени неважны, но я бы хотел иметь возможность ассоциировать Contracts
с одной (и только с одной) другой моделью (Account
, Location
или Region
).Бизнес-логика похожа, но различна в зависимости от ассоциации.
Моей первой мыслью было бы выбрать то, что может быть наивным подходом, и установить внешний ключ на Contract
для связанной модели и указать, какоймодель, которая указывает на использование внешнего ключа enum.
Есть ли рекомендуемый способ сделать это с точки зрения архитектуры?Должен ли я сделать шаг назад и подумать, какие дизайнерские решения побудили меня задать этот вопрос в первую очередь?
Я использую Rails 5.2.2
и последнюю версию PostgreSQL.