这几天对逻辑主键、业务主键和复合主键进行了一些思考,也在网上搜索了一下相关的讨论,相关讨论可以看最下面的参考链接。下面是自己基于 SQL Server 做的一些总结,其他数据库(Oracle、MySQL、DB2、......)应该也类似吧。这个只是自己一时的思考,如有不当请告知,重新思考后再修正 ...
一般情况下,一张数据表必须要有一个主键字段,这样这个主键字段就可以唯一标识这条记录了。不过采用什么样的字段来做为主键字段还是一个必须解决的问题,目前有两种常用的主键策略:业务主键与逻辑主键。 业务主键是指采用业务数据中的某个字段做为主键,比如在员工档案表中可以用工号来做为主键 在车辆管理系统中可以用车牌号做为主键字段。逻辑主键,也称代理主键,是指不采用任何业务数据做为主键,而是采用一个没有业务意义 ...
2018-10-22 02:35 0 1147 推荐指数:
这几天对逻辑主键、业务主键和复合主键进行了一些思考,也在网上搜索了一下相关的讨论,相关讨论可以看最下面的参考链接。下面是自己基于 SQL Server 做的一些总结,其他数据库(Oracle、MySQL、DB2、......)应该也类似吧。这个只是自己一时的思考,如有不当请告知,重新思考后再修正 ...
1业务主键(natrual key),有意义的字段。 2逻辑主键(surrogate key),无意义的字段,即自增长字段,即identity。这其中还有一个选择GUID。 问题:到底业务单号作为主键 还是 逻辑主键做为主键好? 业务主键的如果保证不变性,其实是可以的。但是有时候很难 ...
**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 ...
1、主键:用PRIMARY KEY修饰的列。 若只有一个主键,则其不能重复。 若存在两个或多个主键,则为复合主键(也就是多个列可以组成复合主键);此时,只有当组成复合主键的所有列的值都相同时,才不允许(把多个列同时重复才视为重复)。2、唯一键约束:用UNIQUE KEY ...
今天电面被问到了一个复合主键的问题,击中了自己的知识盲区,当时回答是用ALTER TABLE ADD PRIMARY KEY添加,后来查了下答的不对,正好借着机会把联合主键也复习了下。 首先说一下联合主键,联合主键其实就是中间表。在多对多模型里,需要两个表中的主键组成联合主键 ...
复合主键和联合主键 复合主键:主键含有一个字段以上 联合主键:多个主键联合形成一个主键 ★★★注意:主键A和主键B的数据可以完全一样,但是它俩联合的联合主键,数据是唯一的 应用场景 复合主键出现是因为一个字段的数据不唯一,而复合主键,我个人认为 ...