Как лучше всего смоделировать следующие ...
Предположим, у меня есть два объекта: Agency
и Publisher
, и оба имеют отношение "1 к n" с Employee
. Это истинное отношение «1 к n», поскольку каждый Employee
может работать только для одного Agency
или одного Publisher
. Предположим далее, что я не могу ввести супертип (например, Employer
), который поддерживает отношение 1 к n.
Я предпочитаю иметь внешний ключ в Employee
, который может ссылаться на первичный ключ Agency
или Publisher
(все мои первичные ключи - это 64-битные идентификаторы, уникальные для всей базы данных). Однако теперь я не смогу отобразить двунаправленную ассоциацию, не указав в Employee
, является ли это отношением Agency
или Publisher
.
Другой вариант - использовать две таблицы AgencyEmployee
и PublisherEmployee
, которые затем можно связать как традиционные двунаправленные ассоциации «1 к n».
Что вы считаете оптимальным в этой ситуации?
ОБНОВЛЕНИЕ: Спасибо за отличные ответы за такой короткий промежуток времени! Что вы думаете о следующем решении: внешние ключи в Employee
для Agency
и Publisher
, например, agency_id
и publisher_id
?