Предполагая, что у меня есть несколько отношений в моей базе данных, например, Store, Employee и Sale, и я хочу соединить пары с помощью простого бинарного отношения. Лично я бы создал таблицы с именами Employee_Store и Employee_Sale с естественным ключом, состоящим из внешних ключей.
Теперь мой коллега настаивает на создании одной таблицы для нескольких отношений. Для приведенного выше примера может быть таблица с именем EmployeeLinks:
EmployeeLinks(
IdLink int PK,
IdEmployee int FK null,
IdStore int FK null,
IdSale int FK null,
LinkType int not null
)
Пожалуйста, помогите мне с вескими причинами, почему это не очень хорошая идея. У меня есть свои аргументы, но я хотел бы сохранить их в тайне и выслушать ваши объективные мнения.
РЕДАКТИРОВАТЬ:
Первоначально в таблице выше не было бы первичного ключа (!). Поскольку внешние ключи допускают нулевое значение, суррогатный ключ является единственным вариантом.