本文经过产品编码和订单流水号介绍一下序列号(Sequence)在crudapi中的应用。html
MySQL数据库没有单独的Sequence,只支持自增加(increment)主键,可是不能设置步长、开始索引、格式等,最重要的是一张表只能由一个字段使用自增,但有的时候咱们须要多个字段实现序列号功能或者须要支持复杂格式,MySQL自己是实现不了的,因此crudapi封装了复杂序列号,支持字符串和数字,自定义格式,也能够设置为时间戳。能够用于产品编码、订单流水号等场景!数据库
产品编码采用字符串方式,格式为:PROD_%09d,表示长度为9,宽度不足用0补齐,最小值从1开始, 最大值为999999999,下一个值为1,步长为1。api
产品编码采用时间戳方式,格式为:'SO'yyyyMMddHHmmssSSS,SO表示前缀,精确到年月日时分秒毫秒post
产品表配置序列号字段测试
销售订单表配置序列号字段ui
经过ui建立产品,由于编码字段设置了序列号,因此留空,这样后台会自动生成编码,若是编码字段手工输入,就以手工输入地值为准。编码
生成的编码为PROD_000000001,和指望的一致。spa
经过Postman建立销售订单htm
ui查看订单列表,流水号发现SO20210212110955912生成成功索引
序列号提供了获取下一个值功能的API,适合UI定制的场景,显式的把值显示在ui上,这样更加直观,可是若是用户不点保存或者保存失败的话,可能会浪费值。查看swagger文档:
https://demo.crudapi.cn/swagger-ui.html
经过Postman获取到下一个值为PROD_000000002
本文经过配置序列号的方式实现了特定字段的自动赋值功能,无需编码,而且支持二次开发。目前有点不完善的地方,产品和销售订单都是孤立的单表,后续会介绍若是配置表关系,实现一对多,一对一,多对多等主子表。
本系统属于产品级的零代码平台,不一样于自动代码生成器,不须要生成Controller、Service、Repository、Entity等业务代码,程序运行起来就能够使用,真正0代码,能够覆盖基本的和业务无关的CRUD RESTful API。
官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login