首先纠正错误
没有自增主键是无法修改数据的……
你能确定吗?
果真如你所说,那请问:
1、 下面这数据有主键自增吗?
2、 这样的数据是不是不能修改?
主键自增主要是方便
主键自增主要就是为了方便,让数据库中的int自增,保证主键唯一性。跟数据能不能修改没有任何关系,至于怎么用看个人习惯,跟实际项目需求了。
能不能不这样做
我的做法是让程序生成一个主键,方法是 时间戳+随机数,附上PHP的方法:
$key = time().mt_rand(1000, 9999);
?>
这样子生成的主键(小项目是这么用的)看起来整齐。你用自增的方式:1、2、3、4...10000、3000000000001这样的主键看起来是不是有点怪(我有强迫症),再说了如果把ID为2的删除了。就成了这样1、3、4...10000、3000000000001;觉得是不是又不好看了,当然了只有强迫症这么觉得。
总结:
我觉得只要把握住主键唯一性,至于如何生成主键,选择方式很多,int自增、时间戳+随机数、表数据中能保证唯一的列都是可以的。这种自增的int似乎被很多人看着不爽(我的老师就觉得不合适),现在想想似乎有些怪异。
纯属个人观点,欢迎拍砖指正!