每个表行都需要ID吗?

Lau*_*ura 2 php mysql database database-design

我已经看到几乎每个数据库条目都有一个自动递增的ID字段.

这真的需要吗?

如果没有,它有什么用?

Fla*_*ino 5

稍后查找该特定行很有用.如果您有其他值保证每行唯一,则不一定需要额外的id列,因为您可以使用另一列作为主(唯一)键.

但是,自动递增id列的优点是它对
每行都是唯一的,而
b)永远不会改变.

以StackOverflow为例.每个问题都有一个ID(这个是6886017),并使用URL中的ID和标题.因此,很容易有两个具有相同标题的问题,因为它们的ID仍然是唯一的.您甚至可以更改问题的标题,旧的链接仍然可以使用,因为StackOverflow真正关注的是URL的ID部分,而不是标题部分.