Один или два основных ключа в таблице «многие ко многим»?

У меня есть следующие таблицы в моей базе данных, которые имеют отношение многие ко многим, что выражается соединительной таблицей, имеющей внешние ключи к первичным ключам каждой из основных таблиц:

Виджет: WidgetID (PK), Название, ЦенаПользователь: UserID (PK), FirstName, LastName

Предположим, что каждая комбинация Пользователь-Виджет уникальна. Я вижу два варианта структурирования соединительной таблицы, которая определяет отношение данных:

UserWidgets1: UserWidgetID (PK), WidgetID (FK), UserID (FK)UserWidgets2: WidgetID (PK, FK), UserID (PK, FK)

Вариант 1 имеет один столбец для первичного ключа. Однако это кажется ненужным, поскольку единственными данными, хранящимися в таблице, являются отношения между двумя первичными таблицами, и само это отношение может формировать уникальный ключ. Это приводит к варианту 2, который имеет первичный ключ с двумя столбцами, но теряет уникальный идентификатор с одним столбцом, который имеет вариант 1. Я также мог бы дополнительно добавить уникальный индекс из двух столбцов (WidgetID, UserID) к первой таблице.

Есть ли реальная разница между этими двумя показателями производительности или какая-либо причина предпочитать один подход другому для структурирования таблицы «многие ко многим» в UserWidgets?

Ответы на вопрос(9)

Ваш ответ на вопрос