Вот что меня смущает. У меня часто есть составные первичные ключи в таблицах базы данных. Плохая сторона этого подхода заключается в том, что у меня есть довольно много работы, когда я удаляю или редактирую записи. Тем не менее, я считаю, что этот подход находится в духе проектирования базы данных.
С другой стороны, есть мои друзья, которые никогда не используют составные клавиши, а скорее вводят другой столбец "id" в таблице, а все остальные ключи - это только FK. У них гораздо меньше работы при кодировании процедур удаления и редактирования. Однако я не знаю, как они сохраняют уникальность записей данных.
Например:
Путь 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
)
Какой путь лучше? Каковы плохие стороны использования второго подхода? Любые предложения?