Я прохожу курс под названием «Системы баз данных», и для нашего учебного проекта я должен разработать веб-сайт.
Вот пример таблицы, которую я создал:
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), должно быть множество других (более веских) причин.
Итак, мой вопрос: как бы вы обосновали необходимость ненулевого автоматического увеличения идентификатора в качестве первичного ключа по сравнению с использованием другого атрибута, такого как имя пользователя?