日期:2014-05-20  浏览次数:20703 次

这个算法怎么写?
id name f_id s_id
1 湖南省 0 1
2 长沙市 1 11
3 株洲市 1 12
……
10 衡阳市 1 19
11 郴州市 1 110

12 广东省 0 2
13 深圳市 2 21
……
21 广州市 2 29
22 梅州市 2 210


 这个算法怎么写 我要根据f_id 最后一个s_id 然后插入一条新纪录时 s_id 在最后一位累加 如果到就个位9 就向后累加以位数

------解决方案--------------------
if(max(s_id)%10==9){
sid = Integer.praseInt((max(s_id)+"").replaceAll("9$","10"));
}
其中max(s_id)查数据库查出某一f_id 最后一个s_id
------解决方案--------------------
最后一句话我表示读不懂,读不通
------解决方案--------------------
if(max(s_id)%10==9){
sid = Integer.praseInt((max(s_id)+"").replaceAll("9$","10"));
}
其中max(s_id)查数据库查出某一f_id 最后一个s_id
------解决方案--------------------
探讨

引用:
最后一句话我表示读不懂,读不通

我错了 不知道怎么说 你看看那个表格吧 应该懂的!

------解决方案--------------------
表的存储结构有问题,有id不用搞个s_id出来,id就是个废字段

如果是个树状结构记录parent的id就ok了,不用再搞什么奇怪的算法了


------解决方案--------------------
f_id意思是father的id吧,s_id意思是son吧,

String s_id = f_id + number 吧?

“如果到就个位9”真不明白是什么意思
------解决方案--------------------
id直接自动增长啊,s_id没什么太大的意义感觉。


------解决方案--------------------
1 什么数据库,不同数据库语法,函数不一致
2 29 后面 210,那么219后面是220还是2190?
------解决方案--------------------
省的f_id是0,s_id是序号,假设为x,
那么该省的下属市f_id是x,s_id是x+市序号,假设为a,结果就是x+a,
可以利用String和子串来做