为SQL数据库动态生成短URL?
我的客户拥有超过40万客户的数据库。为每个客户分配一个GUID。他希望我选择所有的记录,创建一个动态的“短URL”,其中包括这个GUID作为参数。然后将此短url保存到每个客户端记录上的字段为SQL数据库动态生成短URL?,url,short,short-url,Url,Short,Short Url,我的客户拥有超过40万客户的数据库。为每个客户分配一个GUID。他希望我选择所有的记录,创建一个动态的“短URL”,其中包括这个GUID作为参数。然后将此短url保存到每个客户端记录上的字段 我的第一个问题是,是否有任何URL缩短网站允许您像这样通过编程动态创建短URL?您可以使用谷歌的URL缩短器,它们有一个API 以下是相关文档:此URL不够短: 注意:我个人认为你的客户要求的是一些奇怪的东西。通过要求您在每个客户记录上创建URL字段(通过确定性算法基于客户的GUID),他实际上是在要求您
我的第一个问题是,是否有任何URL缩短网站允许您像这样通过编程动态创建短URL?您可以使用谷歌的URL缩短器,它们有一个API
以下是相关文档:此URL不够短:
注意:我个人认为你的客户要求的是一些奇怪的东西。通过要求您在每个客户记录上创建URL字段(通过确定性算法基于客户的GUID),他实际上是在要求您对数据库进行非规范化 TinyUrl允许您这样做(没有广泛的文档记录),例如: 变成 所以你本来可以 对 guid并没有那么清晰,但是URL应该是唯一的
请注意,您必须通过HTTPWebRequest传递此消息并获得响应。URL缩短站点使用的算法非常简单:
LOWER = [chr(x + ord('a')) for x in range(25)]
DIGITS = [chr(x + ord('0')) for x in range(10)]
MAP = DIGITS + LOWER
def i2text(i, l):
n = len(MAP)
result = ''
while i != 0:
c = i % n
result += MAP[c]
i //= n
padding = MAP[0]*l
return (padding+result)[-l:]
print i2text(0,4)
print i2text(1,4)
print i2text(12,4)
print i2text(36,4)
print i2text(400000,4)
print i2text(1600000,4)
结果:
0000
0001
000c
0011
kib9
4b21
您的URL将是这样的形式。您的客户是否满意通过一个公共短截器(goo.gl、bit.ly等)重定向他的点击?我认为他们不会让你通过他们的服务生成一个不使用他们作为重定向器的短URL。你为什么不能实现你自己的缩短算法并在客户端的站点上运行一个短重定向程序呢?他们也可能反对在批量过程中被点击400000次!如果你做得很优雅,每秒钟做一次,这会持续超过4.5天,但是做得更快是“不友好的”。