防止数据库中的重复条目

时间:2012-06-15 06:43:40

标签: php sql mysqli duplicates

我正在使用表单将文件(图像)上传到我的服务器。怎么可能阻止同一图像上传两次?我不可能看到相同标题存在的图像,因为相同的图像可以具有不同的标题,并且不同的图像可以具有相同的标题。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

创建像ZombieHunter建议的哈希。为什么?因为如果图像已经存在,可以轻松快速地搜索并检查大的哈希表。不幸的是,所有这些哈希方法如md5或md5_file都可以处理现有文件而不是远程文件。所以你无论如何都要上传文件。您可以做的是决定是否要保留文件。如果您从在线资源中获取文件,可能有办法从头文件中检测文件大小并运行哈希而不下载它,但这是一种特殊情况。

此外,如果您有其他业务逻辑附加到这些图像,使用userHasImages或companyHasImages等概念,您可以在命名空间/文件夹/标记中组织它们,以便您可以进一步加快搜索速度。

就严格来说,防止重复条目的数据库而言,请对包含散列的列使用唯一索引。