我正在选修一门名为“数据库系统”的课程,对于我们的课程项目,我必须设计一个网站。
下面是我创建的一个表的示例:
CREATE TABLE users
(
uid INT NOT NULL AUTO_INCREMENT,
username VARCHAR(60),
passhash VARCHAR(255),
email VARCHAR(60),
rdate DATE,
PRIMARY KEY(uid)
);
教授告诉我"uid“(用户id)是完全无用和不必要的,我应该使用用户名作为主键,因为没有两个用户可以有相同的用户名。
我告诉他使用用户id对我来说很方便,因为当我调用像domain.com/viewuser?id=5这样的东西时,我只需用:is_numeric($_GET['id'])
检查参数...不用说,他并不信服。
因为我已经在大量的教程中看到了user_id和其他类似的属性(thread_id、comment_id等),并且查看了流行软件的数据库模式(例如。肯定还有很多其他(更强大的)原因。
所以我的问题是:你如何证明需要一个不为空的自动递增id作为主键,而不是使用另一个属性,比如用户名?
https://stackoverflow.com/questions/4103433
复制相似问题