唯一的数据库urlkey而不是id

时间:2010-09-14 02:34:30

标签: url key

我有一个Web应用程序,用户可以登录并阅读他们的消息。我使用数据库中的ID主键来访问和处理用户的消息,例如(viewmessage / 3),但我很快意识到我不想这样做,因为它向所有用户提供了有关潜力的信息消息存储在数据库中。与用户一样的想法,查看我用来使用他们的ID的用户个人资料,但是它给出了网站上有多少用户... 所以我所做的是在每个表中添加一个名为UrlKey的新列,这个键是一个varchar(16),它由16个独特的随机生成的数字组成,我用它们映射到服务器端的ID。

现在我的问题是16太多或普遍的做法(16 ^ 10),我应该只使用整数或混合使用int和ascii字符,在速度,安全等方面的任何指导建议......? 非常感谢

2 个答案:

答案 0 :(得分:1)

16 ^ 10是一个巨大的数字,超过1万亿条消息。

如果您使用混合大小写字母和数字,那么您可以使用62个字符,而使用5个字符,您已经拥有62 ^ 5个组合,这几乎是10亿个组合。

答案 1 :(得分:1)

大多数数据库使用GUIDUUID作为唯一字符串而不是自动增加的ID。它们都可以存储为16字节128整数但是32个字符。

我会使用GUID或UUID。那么你永远是独一无二的。