序列号治理

本文通过产品编码和订单流水号介绍一下序列号(Sequence)在crudapi中的利用。

概要

序列号

MySQL数据库没有独自的Sequence,只反对自增长(increment)主键,然而不能设置步长、开始索引、格局等,最重要的是一张表只能由一个字段应用自增,但有的时候咱们须要多个字段实现序列号性能或者须要反对简单格局,MySQL自身是实现不了的,所以crudapi封装了简单序列号,反对字符串和数字,自定义格局,也能够设置为工夫戳。能够用于产品编码、订单流水号等场景!

配置序列号

产品编码


产品编码采纳字符串形式,格局为:PROD_%09d,示意长度为9,宽度有余用0补齐,最小值从1开始, 最大值为999999999,下一个值为1,步长为1。

销售订单流水号


产品编码采纳工夫戳形式,格局为:'SO'yyyyMMddHHmmssSSS,SO示意前缀,准确到年月日时分秒毫秒

表定义配置序列号属性

产品编码


产品表配置序列号字段

销售订单流水号


销售订单表配置序列号字段

验证序列号性能

产品


通过ui创立产品,因为编码字段设置了序列号,所以留空,这样后盾会主动生成编码,如果编码字段手工输出,就以手工输入地值为准。


生成的编码为PROD_000000001,和冀望的统一。

销售订单


通过Postman创立销售订单


ui查看订单列表,流水号发现SO20210212110955912生成胜利

高级

序列号API


序列号提供了获取下一个值性能的API,适宜UI定制的场景,显式的把值显示在ui上,这样更加直观,然而如果用户不点保留或者保留失败的话,可能会节约值。查看swagger文档:
https://demo.crudapi.cn/swagger-ui.html

验证


通过Postman获取到下一个值为PROD_000000002

小结

本文通过配置序列号的形式实现了特定字段的主动赋值性能,无需编码,并且反对二次开发。目前有点不欠缺的中央,产品和销售订单都是孤立的单表,后续会介绍如果配置表关系,实现一对多,一对一,多对多等奴才表。

附demo演示

本零碎属于产品级的零代码平台,不同于主动代码生成器,不须要生成Controller、Service、Repository、Entity等业务代码,程序运行起来就能够应用,真正0代码,能够笼罩根本的和业务无关的CRUD RESTful API。

官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login