请问sql数据库中一定要有标识列吗?

来源:百度知道 编辑:UC知道 时间:2024/06/21 14:29:31
数据库表一定要有标识列(即自增列)才算性能优秀吗?如何来设计数据库表达到最优呢?一定要有自增列吗?

现在的数据库基本都是关系型的,很大的问题就是数据冗余,为了解决这个问题就引入主键和外键的概念。所以能够用最小的数据量标识表中的一条记录,是数据库性能调优很关键的方法。那么表中现有的数据列如果不能唯一的标识表中记录,可能就需要多列同时使用,也就是复合主键,这样的数据库无论是编程还是查询,都很难达到理想的状态,所以只好增加一列对数据毫无用处的列,做标识列,目的就是唯一的定位记录,这是关系型数据库的惯用做法。但不是一定的,如果表中现有的属性可以唯一标识表中记录的话,就可以不用标识列,同样优秀。

标识列只是用来确保一张表的一条数唯一性
一般都是主键,无需插入

你设置主键不用标识 也是可以的
必须每次插入数据取得最大ID 然后 ID+1 手动插入

这个还是要看系统的要求了,
比方说有数据
ID
1
2
3
4
5
删除第ID为3的时候结果将为
1
2
4
5

那么数据缺失了3 如果你设置了标示列,再插入ID为6,没有标示可以找到缺失插入ID可为3

至于用不用标示 个人习惯吧,标示列与性能没关系,对数据的完整性有约束

无所谓的!有也可以,没有也可以,但是要有主键