Должна ли каждая таблица MySQL иметь автоинкрементный первичный ключ?

  • Я понимаю значение первичных ключей.
  • Я понимаю значение индексов.

Должна ли каждая таблица MySQL иметь автоинкрементный первичный ключ (в идеале с типом поля INT)?

Обновить

Ответ @Raj More кажется наиболее эффективным. Однако, когда я думаю об этом, возникает вопрос, как этот автоинкрементный ID первичного ключа будет связан с другими таблицами. Например:

таблица 1

ID  |   firstname  |   lastname | email
----------------------------------------
1   |    john      |   doe      | 1@email.com
2   |    sarah     |   stow     | 2@email.com
3   |    mike      |   bro      | 3@email.com

таблица 2

ID  | memberid |    display      |    address
--------------------------------------------
1   |    1     | funtime zone    |   123 street
2   |    3     | silly place llc |  944 villa dr 

В приведенном выше примере потребитель может прийти на сайт и выбрать регистрацию для получения бесплатного продукта/услуги. Если потребитель выбирает, он может предоставить дополнительную информацию (хранящуюся в таблице 2) для дополнительной рассылки и т.д. Проблема, которую я вижу, заключается в том, как эти таблицы связаны с "полем с автоинкрементным первичным ключом". В таблице 2 'memberid' относится к ID таблицы 1, но это не совсем ясно. Любая новая информация, помещенная в таблицу 2, будет увеличиваться на 1, в то время как не все потребители решат участвовать в требуемых данных таблицы 2.

6
задан JM4 7 September 2011 в 22:45
поделиться