代码之家  ›  专栏  ›  技术社区  ›  user391986

唯一数据库urlkey而不是id

  •  0
  • user391986  · 技术社区  · 16 年前

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

    我现在的问题是,16是太多还是常见的做法(16^10),我应该只使用int或int和ascii字符的混合,在速度、安全性等方面有任何指导性建议吗? 多谢

    2 回复  |  直到 16 年前
        1
  •  1
  •   David Basarab    16 年前

    大多数数据库使用 GUID 或 UUID 对于唯一字符串,而不是自动递增的ID。它们都可以存储为16字节128整数,但为32个字符。

    我将使用一个guid或uuid。那么你就永远是独一无二的。

        2
  •  1
  •   Bimmy    16 年前

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

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

    推荐文章