Hibernate Entity с двумя вариантами внешнего ключа - PullRequest
0 голосов
/ 06 июня 2018

У меня есть такой вариант использования:

У меня есть таблица A и таблица B (ни один из них не расширяет другой, они логически отличаются).Обе таблицы должны иметь ссылку с одним или несколькими 'документами' .Таким образом, я могу спроектировать таблицу A и таблицу B, но как спроектировать таблицу для «документов»?Должно ли оно иметь 2 ограничения внешнего ключа (возможна одна запись из документов, чтобы иметь только 1 внешний ключ для таблицы A или B, а другой внешний ключ будет нулевым)?Как я это объявлю в SQL и в Hibernate / JPA.Заранее спасибо.

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете иметь однонаправленное отношение «один ко многим» из таблицы A / B к документам.Для этого вам потребуются таблицы связи между таблицей A / B и документом (другими словами, документ будет основной таблицей).Также вам потребуется сначала сохранить документ отдельно, а затем можно присвоить документы сущностям таблицы A / B.

В качестве альтернативы, если вы хотите сохранить документы вместе с сущностью таблицы A / B, вам необходимо сохранитьоба внешних ключа, которые могут иметь значение NULL, т.е. A или B.

Оба подхода хороши, поэтому в зависимости от требований вашего бизнеса вы должны выбрать один.

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