关于自身一对多排序路径的生成

 

有一些限制条件,有些我认为不正确

每个路径占9位,最终生成的是数字的字符串,如001002003

生成到当前路径,最多五级

数据库字段path 不能为空,插入数据时该字段path 必须有值,因为id是插入数据后生成的,因此

不可能在插入数据前获得id,因此必须自己生成一个唯一值

 

虽然我认为使用数据库自增id是不规范的,但系统依然是这样的,id应该是由系统生成的唯一值,所有对象都唯一,因9位限制原系统的18位id的用不上

其实path应该是1-2-3的形式

唯一值生成

可以采用查询maxid+1

处理系统毫秒数,减去一个固定时间,如取出当前的毫秒数,未来的数减去此数肯定为正值,如果嫌大,可以除以

或以一个初始系统毫秒数减去十亿为基准,系统初始后以此值自增,可防止大数

或者将系统毫秒数前减1后减3;

 

// System.out.println(System.currentTimeMillis()-1411615909652l);
// long l=System.currentTimeMillis()-1411615909652l;
// System.out.println(l/100);
// System.out.println(2*12*24*60*60*1000);
// System.out.println(2*12*24*60*60*10);
// System.out.println(2*12*24*60*60);
// System.out.println(5*12*24*60*60*10);
// System.out.println(5*12*24*60*60);

posted @ 2014-09-25 17:10  stoneuu  阅读(210)  评论(0编辑  收藏  举报