uid mysql设计主键_在数据库设计中,无论如何也该设计一个自增ID字段作为主键吗?...

首先纠正错误

没有自增主键是无法修改数据的……

你能确定吗?

果真如你所说,那请问:

1、 下面这数据有主键自增吗?

2、 这样的数据是不是不能修改?

77f4652751577a7d8a66c111884a11da.png

主键自增主要是方便

主键自增主要就是为了方便,让数据库中的int自增,保证主键唯一性。跟数据能不能修改没有任何关系,至于怎么用看个人习惯,跟实际项目需求了。

能不能不这样做

我的做法是让程序生成一个主键,方法是 时间戳+随机数,附上PHP的方法:

$key = time().mt_rand(1000, 9999);

?>

这样子生成的主键(小项目是这么用的)看起来整齐。你用自增的方式:1、2、3、4...10000、3000000000001这样的主键看起来是不是有点怪(我有强迫症),再说了如果把ID为2的删除了。就成了这样1、3、4...10000、3000000000001;觉得是不是又不好看了,当然了只有强迫症这么觉得。

总结:

我觉得只要把握住主键唯一性,至于如何生成主键,选择方式很多,int自增、时间戳+随机数、表数据中能保证唯一的列都是可以的。这种自增的int似乎被很多人看着不爽(我的老师就觉得不合适),现在想想似乎有些怪异。

纯属个人观点,欢迎拍砖指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值