乐趣区

关于mysql:通过序列号Sequence零代码实现订单流水号

序列号治理

本文通过产品编码和订单流水号介绍一下序列号 (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

退出移动版