Я изучаю курс под названием «системы баз данных», и для нашего проекта класса я должен разработать веб-сайт.
Вот пример созданной мной таблицы:
CREATE TABLE users
(
uid INT NOT NULL AUTO_INCREMENT,
username VARCHAR(60),
passhash VARCHAR(255),
email VARCHAR(60),
rdate DATE,
PRIMARY KEY(uid)
);
Профессор сказал мне, что «uid» (идентификатор пользователя) был совершенно бесполезным и ненужным, и я должен был использовать имя пользователя в качестве первичного ключа, поскольку нет двух пользователей может иметь то же имя пользователя.
Я сказал ему, что мне было удобно использовать идентификатор пользователя, потому что, когда я вызываю что-то вроде domain.com/viewuser?id=5, я просто проверяю параметр с помощью: is_numeric ($ _ GET ['id'])
... само собой разумеется, что он не был убежден.
Поскольку я видел user_id и другие подобные атрибуты (thread_id, comment_id среди других) во многих учебных пособиях и просматривая базу данных схемы популярного программного обеспечения (например, vbulletin) должно быть множество других (более сильных) причин.
Итак, мой вопрос: как бы вы обосновали необходимость ненулевого автоматически увеличивающегося идентификатора как первичный ключ или использование другого атрибута, такого как имя пользователя?