【问题标题】:Are unique IDs (GUID's) good for website image filenames?唯一 ID (GUID) 是否适用于网站图像文件名?
【发布时间】:2011-10-22 05:09:34
【问题描述】:

我正在与一位程序员 (PHP) 同事进行辩论,但在 GUID 方面我们都存在分歧。假设每个图像的信息都存储在数据库中,并且有自己的主键 (int)。

除了不必担心文件名重复之外,还有什么原因可以为图像文件名使用唯一 ID?

我不想忽视他的方法,但它也不适合我。

谢谢! 本

更新: 听说过很多关于 GUID 的 +1,SEO 会如何受到“随机”生成的图像文件名的影响? (感谢 Sukumar)

【问题讨论】:

标签: php image seo guid


【解决方案1】:

除了不必担心文件名重复之外,还有什么原因可以为图像文件名使用唯一 ID?

对文件名使用自增主键可以猜测其他图像的 URL,这可能是您不想要的 - 根据您的系统的工作方式,例如,用户可以访问不打算发布的图像(还)。

我认为使用唯一 ID 是个好主意。

【讨论】:

  • 这里 10 秒有意义...,+1
  • 哇,这是一个非常快速和简洁的回复,谢谢!安全性胜过轻微的数据库膨胀。
【解决方案2】:

使用 GUID 作为文件名的优点

  • 获取不可预知的文件名。
  • 可扩展的名称(数据库分片时无需担心重命名文件)。

对文件名使用 GUID 的缺点

  • 必须在数据库中存储其他数据。

使用数据库主键作为文件名的优点

  • 通过减少对额外列的需求来节省存储空间。

对文件名使用数据库主键的缺点

  • 创建可预测的文件名,允许用户“猜测”。

总结:这是您需要根据自己的要求考虑的权衡取舍。不过,似乎更倾向于选择 GUID。

【讨论】:

  • 感谢 Sukumar,非常清晰的清单。 GUID 比我认为的要强大得多。将 SEO 考虑作为一个单独的问题会更好吗?
  • SEO 考虑可能是答案中的一个附加点。您可以进一步澄清您的问题并改进此答案,使其更加完整。
【解决方案3】:

UUID 在您需要不可预测文件名时非常有用,因此没有正确的 URL 就没有人可以下载所有文件。

【讨论】:

  • @OverZealous:哦,我的错。不知道。所以它对于大约 99% 的人来说是不可预测的))顺便说一句,有任何证据表明 GUID 实际上是可预测的吗?
  • 对不起,我重写了我的评论。我不是故意要遇到这么苛刻的!
  • @OverZealous:根本不是。我承认我不知道很多事情,变得更聪明是我在这里的目标;-)
  • @OverZealous:根据维基百科“对 WinAPI GUID 生成器的密码分析表明,由于 V4 GUID 的序列是伪随机的,在充分了解内部状态的情况下,可以预测先前和后续值”。因此,对于少数公司/项目来说,这可能还不够好
【解决方案4】:

如果您使用主键将其存储在数据库中,我建议将其用作唯一 ID(以及文件名)。在数据库中有两个唯一列标识一个资源没有多大意义。顺便说一下,我不会为此主键使用自动增量字段。猜测其他可能不需要的图像 ID 很容易。

我认为两者之间的选择是一个品味问题。我们两者都用。文件名是最常用的,但您必须有权查看文件。我们也使用唯一 ID,但这是为了避免权限检查和使某人能够将图像分享给非用户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 2012-03-30
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多