网站首页 > 文章精选 正文
序列号管理
本文通过产品编码和订单流水号介绍一下序列号(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(opens new window)
验证
通过Postman获取到下一个值为PROD_000000002
小结
本文通过配置序列号的方式实现了特定字段的自动赋值功能,无需编码,并且支持二次开发。目前有点不完善的地方,产品和销售订单都是孤立的单表,后续会介绍如果配置表关系,实现一对多,一对一,多对多等主子表。
附demo演示
本系统属于产品级的,不同于自动代码生成器,不需要自动生成代码,程序运行起来就可以使用,真正0代码。
官网地址:https://crudapi.cn (opens new window)
测试地址:https://demo.crudapi.cn/crudapi/login
猜你喜欢
- 2025-07-10 前端工程化:从“手忙脚乱”到“从容协作”的进化记
- 2025-07-10 使用C#创建服务端Web API(c#开发web服务器)
- 2025-07-10 SpringBoot之旅第四篇-web开发(springboot做web项目)
- 2025-07-10 一文读懂SpringMVC(一文读懂新型政策性金融工具)
- 2025-07-10 Rust Web编程:第十二章 在 Rocket 中重新创建我们的应用程序
- 2025-07-10 Apache Druid 数据摄取——本地数据和kafka流式数据 一篇文章看懂
- 2025-07-10 HummerRisk 开发手册:Restful Api 使用
- 2025-07-10 钉钉常用的消息类型与数据格式总结
- 2025-07-10 这几个开发者工具你听过嘛(这几个开发者工具你听过嘛英文)
- 2025-07-10 旗鱼浏览器电脑版v1.04发布:全新Logo+登录问题修复
- 最近发表
-
- Vue3+Django4全新技术实战全栈项目|高清完结
- 工厂模式+策略模式消除 if else 实战
- 每天一个 Python 库:httpx异步请求,让接口测试飞起来
- 如何高效实现API接口的自动化测试?
- 前端工程化:从“手忙脚乱”到“从容协作”的进化记
- 使用C#创建服务端Web API(c#开发web服务器)
- SpringBoot之旅第四篇-web开发(springboot做web项目)
- 一文读懂SpringMVC(一文读懂新型政策性金融工具)
- Rust Web编程:第十二章 在 Rocket 中重新创建我们的应用程序
- Apache Druid 数据摄取——本地数据和kafka流式数据 一篇文章看懂
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)