У меня такой вопрос: обязательно ли нужен Primary Key если он нигде не используется? Например есть таблицы articles(id, name) и tags(id, name), а в таблице article_tags(article_id, tag_id) идет связь. Так вот надо ли добавлять в эту таблицу столбец id просто чтобы был PK? Потому что в логике он никогда не будет использоваться.
Первичный ключ в таблице обязан быть. Потому что если к записи в таблице невозможно обратится уникально то и работать с такой записью в одиночку невозможно. Кроме того в результате ошибок в программе могут появляться полностью одинаковые записи. НО нигде не говорится, что PK должен быть именно ID.
В таких таблицах, как ваша, отдельный id в качестве уникального ключа даже вреден, он не мешает создать две записи с одинаковыми article_id, tag_id. Поэтому в таких таблицах необходимо использовать составной первичный ключ из обоих колонок.
create table article_tags(
article_id int not null,
tag_id int not null,
primary key (article_id, tag_id)
)
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости