Вот что меня смущает.У меня часто есть составные первичные ключи в таблицах базы данных.Плохая сторона этого подхода заключается в том, что у меня есть довольно много дополнительной работы, когда я удаляю или редактирую записи.Однако я чувствую, что этот подход соответствует духу проектирования баз данных.
С другой стороны, есть мои друзья, которые никогда не используют составные ключи, а вместо этого вводят в таблицу еще один столбец id,а все остальные ключи просто ФК.У них гораздо меньше работы при кодировании процедур удаления и редактирования.Однако я не знаю, как они сохраняют уникальность ввода данных.
Например:
Путь 1
create table ProxUsingDept (
fkProx int references Prox(ProxID) NOT NULL,
fkDept int references Department(DeptID) NOT NULL,
Value int,
PRIMARY KEY(fkProx,fkDept)
)
Путь 2
create table ProxUsingDept (
ID int NOT NULL IDENTITY PRIMARY KEY
fkProx int references Prox(ProxID) NOT NULL,
fkDept int references Department(DeptID) NOT NULL,
Value int
)
Каким образомлучше?Каковы плохие стороны использования второго подхода?Есть предложения?