mysql主键类型_数据库设计中主键字段类型的选择
很久都没有写过博客了,从最后⼀次发表的⽂章到现在已经是两个多⽉的时间了,⼀直都想写点什么,可⼀直没有时间(其实都是借⼝),随笔内容⽆疑就是⼯作学习中的总结,经验的分享,也是⾃⼰成长的⼀⾯镜⼦,好了,⾔规正传,这次谈谈在数据库设计中主键字段类型的选择。
做web 开发时,经常要与数据库交互,数据库主键的选择也犹为重要,怎么么选择数据库主键字段的类型,主要从以下⼏个⽅⾯考虑:
1. ⾸先要符合业务需求,这是设计中重要的出发点
2. 数据库的迁移问题,考虑在后期是否要经常迁移,数据库⾼度唯⼀性
3.程度中的使⽤是否更简单,易⽤(⽐如分页,⼀般是根据主键查询来分页的)
4.数据库查询的效率,在主键做为外键链表查询的时候
根据以上的情况,通常数据库主键字段的类型常被设计成 int 或 GUID 或⾃定义的格式类型,以下详细说明这⼏种的区别和应⽤的场合
1. 主键字段类型设置成 int 类型
这种情况主要考虑到程序的分页,排序(按主键字段的递增或递减),简洁易懂,同时可加rowguidcol列,如果是SQL 2005可以使⽤NewSequentialid()来顺序⽣成,为同步做准备,数据合并时也可以作为参考。主从表关联速度会快⼀点。⼩库推荐。
2.主键字段类型设置成 GUID 类型
这种情况主要考虑到对数据有强烈的唯⼀性要求,⽐如⽤户表的主键类型都被设置成 GUID,其它的表的主键类型也都应该设置成GUID,严格避免数据重复,并易于定位;数据要经常迁移,如果是 int 类型,容易造成混乱;有若⼲个表饮⾷类似的数据,有时要对这些数据做合并或其它处理,这时GUID 类型是最好的选择
总结:
使⽤GUID。不存在重复问题,数据合并时⾮常简单。关联速度⽐int慢。经常合并数据或脱机输⼊数据联机上传最好⽤此⽅案。
guid  数值是随机的,⽽且不接受可以对使⽤者更具意义的任何形式。没有办法判定产⽣ guid 值的顺序,所以不适合⽤于现有依循环次序递增索引键值的应⽤程序
这两⽅案根据不同需求选择。
>mysql创建表数据类型

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。