我想制作一个具有以下URL格式的网址缩短器: 的 http://myurlshortner.com/ {ID}
id 是唯一的,并且是根据以下地方 - 值表示法序列/系统/系列生成的:
0
1
2
.
.
.
9
a
b
c
.
.
.
z
例如: http://myurlshortner.com/1b6z
为了保存数据库的条目,我想让 id 成为每个新条目递增的主键(或唯一字段),并遵循上述顺序。我怎么能这样做?
对于数据存储,我将使用Amazon SimpleDB。因此,不会有任何存储过程或其他DBMS功能,例如我可以使用的MySQL。
这与({3}}和http://tinyurl.com这样的网址缩短版完全相同。
...我正在用PHP编码。我希望你理解我的问题。
答案 0 :(得分:1)
只需将普通的基数10 id转换为基数36即可实现您的目标。
Base 36使用数字0-9,然后使用字母A-Z。
您可以在将转换存储到数据库中之前进行转换,并使用转换后的数字作为ID,或者只使用正常的基数10自动增量并在代码中进行转换。
请参阅:http://php.net/manual/en/function.base-convert.php
php > echo base_convert(123456789, 10, 36);
21i3v9