Должна ли каждая таблица MySQL иметь автоинкрементный первичный ключ (в идеале с типом поля INT)?
Ответ @Raj More кажется наиболее эффективным. Однако, когда я думаю об этом, возникает вопрос, как этот автоинкрементный ID первичного ключа будет связан с другими таблицами. Например:
ID | firstname | lastname | email
----------------------------------------
1 | john | doe | 1@email.com
2 | sarah | stow | 2@email.com
3 | mike | bro | 3@email.com
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.