如何将具有多个图像的内容存储在数据库中?
对于图像,您有几种选择,包括文件系统,内容管理系统(CMS)和关系数据库(RDBMS)。根据我的经验,如何选择存储内容应基于使用方式。在很多情况下,除非有很多动态内容,否则内容甚至不需要存储在应用程序外部。
我已经使用了上述所有三个选项,并且可以对它们说一下:
当您在适合该方法的平台(例如WordPress)上工作时,CMS是最好的。在大多数情况下,图像可以安全地存储在Web服务器上,然后使用URL进行引用。这样有两个好处:它仅需要将路径字符串存储在数据库中,而不是图像本身,从而减轻了数据库服务器的负担。文件系统是为存储大型文件(例如图像)而设计的,因此存储和检索它们通常都非常快速且高效。无需与图像文件的原始格式进行转换。在以下情况下,将图像直接存储在数据库中并使用应用程序代码检索图像是一种可行且合理的选择:您的用户文件必须紧密耦合,安全且机密。您的应用程序不会在任何时候都需要大量用户的大量文件。
我的组织在将我们的图像存储到数据库方面取得了巨大的成功,因此,我将讨论与该方法有关的一些注意事项。
选择列数据类型
将图像存储在数据库中已经很普遍了,以至于现代数据库已经发展为通过BLOB数据类型来支持它们。某些数据库(例如MySQL)甚至针对不同大小的图像具有不同的BLOB风格:
BLOB:最多可以处理65,535个字节的数据。MEDIUMBLOB:支持的最大长度为16,777,215字节。LONGBLOB:最多存储4,294,967,295字节的数据。表注意事项
除了图像本身之外,您可能还想存储有关图像的其他信息,例如ID,名称,描述,大小,类型(JPEG,GIF,BITMAP等),类别等。
数据库开发和/或管理工具也适用于处理图像。例如,我使用的Navicat Premium,提供一个按钮,用于打开标准文件浏览器以查找和插入图像文件。
无论何时在“表格网格”视图中查看表内容,都可以从数据类型下拉列表中选择希望Navicat处理数据的方式:
要加载图像,只需单击“ 加载” 图标并选择图像。插入后,图像及其大小(以字节为单位)将显示在预览窗格中。