这几天对逻辑主键、业务主键和复合主键进行了一些思考,也在网上搜索了一下相关的讨论,相关讨论可以看最下面的参考链接。下面是自己基于 SQL Server 做的一些总结,其他数据库(Oracle、MySQL、DB2、......)应该也类似吧。这个只是自己一时的思考,如有不当请告知,重新思考后再修正 ...
业务主键 natrualkey ,有意义的字段。 逻辑主键 surrogatekey ,无意义的字段,即自增长字段,即identity。这其中还有一个选择GUID。 问题:到底业务单号作为主键 还是 逻辑主键做为主键好 业务主键的如果保证不变性,其实是可以的。但是有时候很难保证。例如身份证号其实也出现重复性问题。 使用逻辑主键会增加冗余字段。 目前建议使用逻辑主键。 ...
2018-08-20 15:41 0 901 推荐指数:
这几天对逻辑主键、业务主键和复合主键进行了一些思考,也在网上搜索了一下相关的讨论,相关讨论可以看最下面的参考链接。下面是自己基于 SQL Server 做的一些总结,其他数据库(Oracle、MySQL、DB2、......)应该也类似吧。这个只是自己一时的思考,如有不当请告知,重新思考后再修正 ...
一般情况下,一张数据表必须要有一个主键字段,这样这个主键字段就可以唯一标识这条记录了。不过采用什么样的字段来做为主键字段还是一个必须解决的问题,目前有两种常用的主键策略:业务主键与逻辑主键。 业务主键是指采用业务数据中的某个字段做为主键,比如在员工档案表中可以用工号来做为主键、在车辆管理系统中 ...
最近研究uuid,收集的一些资料: http://www.mysqlops.com/2011/09/10/innodb-primary.html (针对InnoDB引擎)我们实际生产环境可能会使用四类属性作为主键:(1). 自增序列;(2). UUID()函数生成的随机值 ...
**about业务主键和逻辑主键 1业务主键(natrual key),有意义的字段。 对前端可见2逻辑主键(surrogate key),无意义的字段,即自增长字段,即identity。这其中还有一个选择GUID。 如果有业务主键,数据唯一性就能得到保证,逻辑主键存在的意义 ...
转自于:http://blog.csdn.net/haizhongyun/article/details/8056578 关于本文一些词的说明: 单一主键:逻辑主键复合主键:联合主键,业务主键 今天在做项目的数据库设计时,突然发现自己在表的主键设置方面太过片面,对于逻辑主键和联合 ...
需求描述:自增主键的格式为 业务序列+当前日期+从00001开始自增 //redis实现按业务+日期+自增 //输出结果为:biz2020021800001、biz2020021800002、biz2020021800003的形式 @Test public void testJedis ...
在设计表结构时,我们首先遇到的问题就是主键设置为什么类型的。之前我用过int 也用过GUID,都不太理想: 使用int做主键的缺点 1、如果经常有合并表的操作,就可能会出现主键重复的情况。 2、使用int 数据范围有限制。如果存在大量的数据,可能会超出int 的取值范围 ...
1、主键:用PRIMARY KEY修饰的列。 若只有一个主键,则其不能重复。 若存在两个或多个主键,则为复合主键(也就是多个列可以组成复合主键);此时,只有当组成复合主键的所有列的值都相同时,才不允许(把多个列同时重复才视为重复)。2、唯一键约束:用UNIQUE KEY ...