摘要:关于循环主键的设计需求一笔业务要生成一个序号,序号长度为位,序号的规则是固定的前缀位日期位受理人序号位每日循环的序列号位。方案采用关系数据库来实现,列有和字段,是主键。
关于循环主键的设计 需求
一笔业务要生成一个序号,序号长度为20位,序号的规则是固定的前缀(5位)+日期(yyyymmdd)(8位)+受理人序号(3位)+每日循环的序列号(4位)。例如
业务员001的业务编号
ORDER201801010010001
ORDER201801010010002
ORDER201801010010003
ORDER201801020010001
业务员002的业务编号
ORDER201801010020001
ORDER201801010020002
ORDER201801010020003
ORDER201801020020001
目前我想到的有两种实现方式,如下
方案1采用redis来实现,将循环序列号前面的作为KEY,比如ORDER20180101001,ORDER20180101002,设置一个超时时间,目前是按天循环,则超时时间设置为24小时。value则是一个自增的数字。这样就可以满足需求了。
方案2采用关系数据库来实现,列有seqprefix和nextval字段,seqprefix是主键。获取的时候查看seqprefix是否存在,不存在则插入 seqprefix=“XXX”,nextval=2. 如果有,则取出当前的nextval,并+1更新。
总结以上两个都可以满足需求。方案1比较方便,不涉及数据表,方案2比较重一点。不知道业界还有没有其他的方法来实现。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71696.html
摘要:索引的原理与应用索引类型,存储结构与锁在数据结构与算法索引一节中,我们讨论了这样的文件索引以及全文索引的基础算法,本文则会针对文件索引在关系型数据库中的实际应用进行探讨。这个索引的是数据表的主键,因此表数据文件本身就是主索引。 showImg(https://segmentfault.com/img/remote/1460000018453572?w=1280&h=554); 本文节选...
阅读 1855·2021-09-29 09:35
阅读 2717·2021-09-22 15:25
阅读 1976·2021-08-23 09:43
阅读 2053·2019-08-30 15:54
阅读 3354·2019-08-30 15:53
阅读 2390·2019-08-30 13:50
阅读 2404·2019-08-30 11:24
阅读 2273·2019-08-29 15:37