两个通用的产生一个编号字段的思路
2010-04-22 23:51
162 查看
两个通用的产生一个编号字段的方案(Java)
以下是我写的方案,大家有什么其它好的方法吗?
以下是另一种:
附件中有这个的数据库设计
本文出自 “ni掌柜的IT专栏” 博客,请务必保留此出处http://nileader.blog.51cto.com/1381108/303149
以下是我写的方案,大家有什么其它好的方法吗?
/* * 获取一个记录编号 * 格式:12 位时间+业务编号+随即数 * 例如:100330101028+04+893 (2010-03-30-10:20:28, 业务号是04, 随机数893 ) *@param btype 业务类型编号 员工业务01 招聘业务02…… *@return code 构造的一个记录编号 */ public static String getCode(String btype){ //返回的code String code; //系统当前时间 12位 SimpleDateFormat sdf=new SimpleDateFormat("yyMMddhhmmss"); String nowDate=sdf.format(new java.util.Date()); //随机数 String iRandom = Math.round(Math.random()*900 )+100 +""; //整合一个code return nowDate+btype+iRandom; }
以下是另一种:
/* * 获取一个记录编号 * 由于不存在随机数相同的风险了,这是只要6位时间即可 * 格式:6 位时间+业务编号+该业务的当天数量 * 例如:100330+04+00003 (2010-03-30-10:20:28, 业务号是04, 当天这个业务是第3笔 ) *@param btype 业务类型编号 员工业务01 招聘业务02…… *@return code 构造的一个记录编号 */ public static String getCode(String btype){ //返回的code String code; //系统当前时间 6位 SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd"); String nowDate=sdf.format(new java.util.Date()); //以上和方案1是一致的,但没有随机数了 换成了业务数量了 String bamountStr = ""; /* * 操作表BusinessToday * 找出当天对应btype的业务数量,加1后作为bamount,并且更新数据库,bamount字段++ * 这个过程是用存储过程实现的,这是只是用伪代码表示 */ //Query Table BusinessToday, get the val of bamount and bdate SELECT bamount, bdate FROM businesstoday WHERE btype = ''; //Check bdate is today? if(bdate == today) bamoutStr = ( bamount + 1) => String类型 //today is another day, bdate != today //更新bdate字段,bamount置0 else { UPDATE bamount =0; UPDATE bdate = today; bamoutStr = ( bamount + 1) => String类型 } //整合一个code return nowDate+btype+bamountStr; }
附件中有这个的数据库设计
本文出自 “ni掌柜的IT专栏” 博客,请务必保留此出处http://nileader.blog.51cto.com/1381108/303149
相关文章推荐
- 两个通用的产生一个编号字段的思路
- 两个通用的产生一个编号字段的思路
- 在 sql查询中如何将两个字段显示在一个字段
- 一个字段拆分为两个字段
- sql查询语句 --------一个表中的字段对应另外一个表中的两个字段的查询语句
- 数据库模糊查询时,一个字段对应多个模糊值的思路
- 根据两个list的相同字段比较,合并成一个list
- mongodb同一个document中两个字段比较查询
- SQLite中怎么将两个字段字符串合并连接为一个
- 准确的说是设置一个由两个字段组成的主键
- SQL 两个字段分组,其中一个字段的不同情形,分类并计算数量
- 两个表中多个字段相同,查询一个中有在另一个表中没有的数据
- mysql语句 一个表统计每天产生的不同类型数据 根据类型字段 统计每天有多少
- 解决字段中有两个点的值统一处理为一个点
- SQL拆分字段,一个拆成两个
- javascript判断两个IP地址是否在同一个网段的实现思路
- 一个自动产生编号的存储过程,数据库sql2000或2005
- 通用权限的思路。只是一个简单的思路。
- 请教一个AWK处理两个文件公共字段结合的题目
- 同一个数据库里,两个相同字段但是顺序不同的数据表合并教程