我正在创建自动增量客户ID ,以 4位数字存储在数据库中。
如果我只使用数字,那么它很简单,但我只有 9999个用户。最后它将是 10 ^ 4 ,这是等于至 10000 客户。
- 醇>
如果我还包含 26个字母的字母。那么最后它将是 36 ^ 4 ,这等于 1679616客户< /强>
使用字母和数字可以为客户存储150万IDS。
以下是它的工作原理......
0001
0002
。 0009
000A
000B
000z
0010
0011
0019
001A
001B
001z
0020
aaa9。
aaaz
aab0
最后是zzzz
我在android和java中创建了这段代码........
void increment() {
chars = mIds.getText().toString().toCharArray();
String value = "" + getId(chars[3], 3);
data = chars[0] + "" + chars[1] + "" + chars[2] + "" + value + "";
mIds.setText(data + " ");
}
private String getId(char aChar, int i) {
if (Character.getNumericValue(aChar) == 9)
return 'a' + "";
else if (aChar == 'z') {
i = i - 1;
chars[i] = getId(chars[i], i).charAt(0);
return '0' + "";
} else {
int num = (int) aChar;
aChar = (char) (++num);
return aChar + "";
}
}
寻找有助于我的任何算法或任何代码......
如果解决方案进入MySQL
或PHP
.....
感谢所有人....
答案 0 :(得分:1)
将id设为varchar
并使用php制作像这样的ID
<?php
for($i=0;$i<10+27;$i++){
$number = base_convert($i,10,10+26);//here 26 is for a-z
$number = str_pad($number, 4, '0', STR_PAD_LEFT);
echo " ".$number;
}
?>
我希望你可以获得last inserted id
,然后按照上面的循环将id
增加1来插入新记录。
以上php代码的输出是:
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000s 000t 000u 000v 000w 000x 000y 000z 0010