问题描述
- 请各位给我个思路啊??
-
我要做一个订单表 里面有id字段 自增 还有个订单编号 orderNumber订单号的格式要求是“年份后两位+月份+日期 后面顺序补三位” 请问应该怎样实现?
设置成自增肯定不行 ,因为已经有了order自增, 而且 order显示的是“1,2,3”
格式,不满足三位。那可不可以让table.orderNumber=table.order呢? 那还的在前面
加占位符? 应该怎样做啊?请各位给个思路啊?
解决方案
订单编号设置成: 日期+时间+用户ID
没有必要那么麻烦
解决方案二:
订单号的格式要求是“年份后两位+月份+日期 后面顺序补三位”
年份后两位+月份+日期,这个比较好解决。可以通过Java来进行组合。
有个问题是,订单ID是自增的,自增规则是最大ID+1 吗?如果是的话,就可以通过的处理,得到ID的值,《后面补的3位一定要和ID相同吗?》如果不想太相同的话,就不需要考虑那个了。
不与 ID保持一致 ,设置3位数字的时候,查下数据库的最大的orderID,然后+1 ,就可以得到最大值。
得到最大值后,进行判断是否小于10 ,小于100,再进行补零
解决方案三:
id字段和作为流水号的字段分开来,流水号设置唯一约束。
解决方案四:
写一个存储过程来产生订单号,用case语句判断<10,<100,<1000,不足位在年月日后补0即可。
时间: 2024-09-14 18:34:27