我很久没有写博客了。 从最后发表的文章到现在已经有两个多月了。 我一直想写点什么,但一直没有时间。 随笔内容是工作学习的总结,是经验的分享,也是自己成长的一面镜子。 那么,因为措辞是正确的,所以这次我们来谈谈数据库设计中主键字段类型的选择。
在进行web开发时,经常与数据库进行交互,选择数据库的主键也很重要。 如何选择数据库键字段的类型,主要考虑以下几个方面。
1 .首先满足商业需求是设计中的重要出发点
2 .数据库迁移问题考虑到后期是否频繁迁移,数据库的唯一性较高
3 .程度中使用是否更简单、易用(例如分页一般基于主键查询进行分页) )。
4 .数据库查询的效率在主键是外键链表的查询时
综上所述,数据库的主键字段类型通常设计为int或GUID或自定义格式类型,下面将详细说明这些差异和应用情况
1 .将主键字段类型设置为int类型
这种情况主要考虑程序的分页、排序(每个主键字段的增量或减量),简洁易懂,可以同时添加rowguidcol列。 如果是SQL 2005,也可以使用NewSequentialid )按顺序生成,准备同步,作为合并数据时的参考。 主从表的关联会快一点。 推荐小库。
2 .将主键字段类型设置为GUID类型
这主要考虑了对数据的强唯一性要求,例如用户表的所有主键类型都设置为GUID,其他表的所有主键类型都设置为GUID,必须严格避免重复数据和便于定位。 要频繁迁移数据,对于int类型,如果您有一些类似于表餐的数据,这些数据容易混淆,并且可能需要合并这些数据或进行其他处理,则GUID类型是最佳选择
总结:
使用GUID。 没有重复问题,数据整合非常简单。 关联速度比int慢。 要通过频繁合并数据或脱机输入数据来在线上传,建议使用此方案。
guid的值是随机的,对用户来说更有意义的格式是不能接受的。 不适合现有的按循环顺序递增索引键值的APP应用程序,因为无法确定生成guid值的顺序
这两个方案根据需要选择。