@ZzeroCool
Learn Java Core, Spring, Hibernate

Как сделать(обойти) foreign key на разные таблицы?

Итак имею ООПшную структуру с абстрактным объектом и его наследниками. В другом объекте есть ссылка на родительский класс (куда может записан один из наследников), но при попытке это дело перенести в БД вошел в ступор, т.к. получается FK толи на одну толи на другую таблицу. Как это решается?
Т.е. вопрос именно по структуре таблицы БД.

P.S. Слышал про полиморфные связи и что они зло. Но проблема явно не первый год существует. Как то же ее решают?
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Можно убрать констрэйн, но это чревато нарушением консистентности.
Можно в проекциях объектов (таблицах) делать условно избыточность в виде нескольких полей-ссылок и поле типа.
Естественно и то и то не идеал. Но так или иначе приходится искать компромисс между многомерностью (ООП) и ее проекциями (реляционные БД). Отсюда и различные вариант нереляционных БД
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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