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

数据库表一定要有标识列(即自增列)才算性能优秀吗?如何来设计数据库表达到最优呢?一定要有自增列吗?

现在的数据库基本都是关系型的,很大的问题就是数据冗余,为了解决这个问题就引入主键和外键的概念。所以能够用最小的数据量标识表中的一条记录,是数据库性能调优很关键的方法。那么表中现有的数据列如果不能唯一的标识表中记录,可能就需要多列同时使用,也就是复合主键,这样的数据库无论是编程还是查询,都很难达到理想的状态,所以只好增加一列对数据毫无用处的列,做标识列,目的就是唯一的定位记录,这是关系型数据库的惯用做法。但不是一定的,如果表中现有的属性可以唯一标识表中记录的话,就可以不用标识列,同样优秀。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-20
标识列只是用来确保一张表的一条数唯一性
一般都是主键,无需插入

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

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

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

至于用不用标示 个人习惯吧,标示列与性能没关系,对数据的完整性有约束本回答被提问者采纳
第2个回答  2009-10-20
无所谓的!有也可以,没有也可以,但是要有主键
相似回答