如何设计表并实现以日期年份、月份和自增序号组合成编号作为主键?
编号示例例如:2015010001 2015010002 ....
2015020001 2015020002 ....
要求:表结构中主键字段ID存储该序号,每隔个月序号将从1重新计数。
直接取id最大,可能会出现并发产生相同的编号,效率不高。
请问各位大神有什么好方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我的做法是用2个表实现的,另外一个表存储月份的数量,如新增一条记录是往这个表插入一个201501,在插入主表数据时读取月份表中201501的数量然后+1,在和月份组合成新的ID,就会201502001、201502002、201502003、201503001这样了,方法有点笨
主键设为自增 输出当前编号时 用当前id减去上月最后一个的id
这样设计的意义是什么?
数据库的数据应该最好是未经处理的,然后在model层封装你要的结果。