首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当存在其他唯一字段时,为什么要使用自动递增的主键?

当存在其他唯一字段时,为什么要使用自动递增的主键?
EN

Stack Overflow用户
提问于 2010-11-05 11:42:58
回答 10查看 9.4K关注 0票数 47

我正在选修一门名为“数据库系统”的课程,对于我们的课程项目,我必须设计一个网站。

下面是我创建的一个表的示例:

代码语言:javascript
复制
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作为主键,而不是使用另一个属性,比如用户名?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4103433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档