Один или два первичных ключей в многие -ко-многим таблице ?

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

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

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

  1. UserWidgets1: UserWidgetID (PK), WidgetID (FK), UserID (ФК)
  2. UserWidgets2: WidgetID (PK, FK), UserID (PK, FK)

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

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

Найдено 9 ответов:

One or Two Primary Keys in Many-to-Many Table?

http://stackoverflow.com/questions/38870/one-or-two-primary-keys-in-many-to-many-table

Посмотреть решение →