【发布时间】:2018-02-11 04:19:32
【问题描述】:
我正在创建自动增加客户 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 .
阿兹
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.....
谢谢大家......
【问题讨论】:
-
只使用 INT 11 吗?
-
如何在 id 中包含字母??
-
你让这变得比它需要的复杂得多
-
确实,您应该使用 Unsigned INT 以便它可以容纳 4294967295 id 或 Unsigned BIGINT 以便它可以容纳 18446744073709551615 id
-
我们必须为每个客户分配 ID,这样他才能记住 4 位数的 ID。