我正在与我的一位程序员同事(PHP)对GUID进行辩论。假设每个图像的信息都存储在数据库中,并且具有自己的主键(int)。
除了不必担心重复文件名之外,使用唯一ID作为图像文件名还有哪些原因?
我不想忽视他的方法,但我也不感到满意。
谢谢! Ben
更新: 听到很多人赞成GUID,那么“随机”生成的图像文件名可能如何影响SEO?(感谢Sukumar)
除了不必担心重复文件名之外,使用唯一ID作为图像文件名还有哪些原因?
我不想忽视他的方法,但我也不感到满意。
谢谢! Ben
更新: 听到很多人赞成GUID,那么“随机”生成的图像文件名可能如何影响SEO?(感谢Sukumar)
除了不必担心文件名重复外,使用唯一ID作为图像文件名的原因是什么?
使用自增主键作为文件名将使得猜测其他图片的URL变得可能,这可能不是你想要的 - 根据你的系统工作方式,用户可以访问未经发布(但存在于服务器上)的图片。
我认为使用唯一ID是个不错的主意。
总结: 这是一个你需要根据你的需求考虑的折衷方案。然而,更倾向于选择GUID。
UUID
在需要具有不可预测文件名的情况下非常有用,这样没有人可以在没有正确的 URL 的情况下下载所有文件。
如果您使用主键将其存储在数据库中,我建议将其用作唯一标识符(因此文件名)。在数据库中有两个唯一列标识一个资源并没有太多意义。顺便说一下,我不会为此主键使用自动递增字段。这样很容易猜测其他可能不需要的图像ID。
我认为选择两者之间是品味问题。我们都使用。文件名是最常用的,但是您必须拥有查看文件的权限。我们还使用唯一ID,但这是为了避免权限检查并使某人能够向非用户共享图像。