从 URL Shortener 的自定义位置值表示法生成唯一 ID
Posted
技术标签:
【中文标题】从 URL Shortener 的自定义位置值表示法生成唯一 ID【英文标题】:Generating unique ids from a custom place-value notation for a URL Shortener 【发布时间】:2011-02-08 20:51:35 【问题描述】:我想制作一个具有以下 URL 格式的 URL 缩短器: http://myurlshortner.com/id
id 是唯一的,由以下位置值符号序列/系统/序列生成:
0
1
2
.
.
.
9
a
b
c
.
.
.
z
例如:http://myurlshortner.com/1b6z
为了将条目保存到数据库,我想让 id 主键(或唯一字段)随着每个新条目递增并遵循上述顺序。我该怎么做?
对于数据存储,我将使用 Amazon SimpleDB。所以不会有任何存储过程或其他 DBMS 功能,例如我可以使用的 mysql。
这与 http://tinyurl.com 和 http://bit.ly 等 URL 缩短器的工作方式完全相同(几乎)。
...我正在用 php 编码。我希望你能理解我的问题。
【问题讨论】:
【参考方案1】:您只需将普通的以 10 为基数的 id 转换为以 36 为基数的 id 即可实现您想要的。
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
【讨论】:
以上是关于从 URL Shortener 的自定义位置值表示法生成唯一 ID的主要内容,如果未能解决你的问题,请参考以下文章
如何从表格视图的自定义单元格内的 TextField 获取值(标签)以发布到 te URL
SharePoint 2010 Url Shortener --SharePoint 2010 短URL生成器