Нет, это не должен быть первичный ключ.
Кроме того: у вас не может быть более одного «первичного ключа» (отличного от составных первичных ключей), и часто имеет смысл иметь поле идентификатора auto-increment для соглашения в одиночку и для некоторых фреймворков (например, таких как Hibernate и ORM Entity Framework).
Чтобы ответить на второй вопрос, существует множество бизнес-ситуаций, в которых многие из вас применяют уникальное ограничение для нескольких столбцов, не делая их своим основным ключом - например, они могут быть уникальными, но вам может потребоваться редактировать/изменить их:
т.е.
- адреса электронной почты для имен пользователей - вынудила уникальный, но пользователи, вероятно, потребуется обновить их
- соли пароля (если ваше поколение звук вряд ли это потребует исполнения)
- случайные строки, используемые для генерации одноразовых или чувствительных по времени ссылок (думаю, бит.ly)
Итак, дело в том, что это делается все время.
'UNIQUE' просто отлично, нет необходимости в первичном ключе –
В таблице может быть только один первичный ключ. –
Предположим, что мне нужен первичный ключ для уникального varchar, это повлияет на мою производительность? если да, как я могу его измерить? – Tatarin