Лучше перепроектировать базу таким образом, чтобы избежать слабых сторон полиморфных ассоциаций, но по-прежнему поддерживать требуемую модель данных. В следующих разделах описываются некоторые решения, которые приспосабливают требуемую взаимосвязь данных и при этом улучшают способ использования метаданных для принудительного ввода в действие целостности данных.
Реверс ссылки
Одно решение для данного антипаттерна является простым, если взглянуть на природу проблемы: полиморфные ассоциации являются обратными.
Создание таблиц пересечения
Внешний ключ в дочерней таблице Comments не может ссылаться на несколько родительских таблиц, так что вместо этого используйте несколько внешних ключей для ссылки на таблицу Comments. Для каждой родительской таблицы создайте отдельную таблицу пересечений и в каждой таблице пересечений определите внешний ключ для Comments, а также внешний ключ для соответствующей родительской таблицы. Данная структура иллюстрируется схемой взаимосвязи объектов далее в примере.