mysql逻辑主键和业务主键设计

低调的浮躁 发布于 2016/05/16 11:24
阅读 2K+
收藏 2
  不知道大家在设计表的时候怎么设计的,假如有个用户信息表,有证件号码,证件类型可以作为联合主键,那自增id主键还需不需要设计 ,是mysql
加载中
0
fenggf
fenggf
最好用自增主键,证件号码和证件类型用唯一索引之类的就可以了
低调的浮躁
低调的浮躁
我准备用多个字段组合作uuid,这样就只维护一个字段了,也利于后期的分库分表
0
learn_more
learn_more
自增主键ID也就是物理主键,这个在数据库关系设计中可要可不要,但是在为了开发的便利,我们系统都会加上的,试想一个键作为key比多个键做联合key,方便很多,比如删除的时候,只要传一个ID就好了。更新也一样。对于逻辑主键,也就是业务上的key,这个其实会根据系统的变化而变化,打个比方,有一个学校的系统存储学生的学号,本来学号可以作为逻辑主键,这样也用了好几年,然后,进入互联网时代,系统变革,把整个系统放在云端,结果多个学校使用,这个时候逻辑主键可能只用学号就不行了,因为不同的学校可能自定义学号会重复!但是如果使用物理主键就不会有这种问题。当然,物理主键一般都会采用 bigint 的自增字段,其实这个有优点也有缺点,优点是索引快,缺点是对多个数据库数据合并的时候你就会发现主键冲突,这是个人的经验。
0
ddatsh
ddatsh

用MYSQL 物理主键就用bigint


OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部