比较存储在文件系统中的映像类型的映像

本文关键字:映像 类型 文件系统 存储 比较 | 更新日期: 2023-09-27 18:15:37

如果我有以下情况:

作为文件系统存储的图像集(JPG)。每个图像都有一个这样的名称:

标识符与学号连接

Ex: 356782377.jpg

和我有一个表,其结构如下:

TransTime       DateTime
Photo           image
Identifier      int
StudentNumber   int

每个Trans在db表中都有一个student映像,在文件系统中也有一个。最初,除了学生号之外,表记录是完整的。

,

    TransTime             Photo    identifier    student number
2016-08-05 18:39:00       image      35678             ??

我想通过比较db中类型(image)的照片与文件系统中存储的图像,从文件系统中的图像文件名中提取学生号(2377)部分,并为db中的事务设置学生号。

我想将两者(db中的图像和文件系统中的图像)转换为字节,并比较它们以正确的数字更新空学生。那是解决我问题的最合适的办法吗?

比较存储在文件系统中的映像类型的映像

一般来说,当您需要比较两个文件是否相等时,特别是当您希望对同一个文件执行多次比较时,最好生成文件的散列摘要,并将其与文件一起存储在数据库中。然后,当您需要将新文件与数据库中的文件进行比较时,您可以生成新文件的摘要并将其与数据库中的文件进行比较。

SHA256摘要使用32字节。MD5哈希值为16。因为你不需要它是加密级的,如果你希望需要进行大量的比较,你可以使用MD5。

如果你不能修改数据库模式和/或数据来添加摘要,那么你的建议可能是你唯一的选择。

标识符是否唯一?您真的想对文件进行二进制比较,还是只想获得给定图像的学生编号?

如果标识符是唯一的,并且您只想要学生号(不需要确保二进制文件是相同的),我将只遍历文件系统上的文件名并根据需要更新DB。