5

我正在尝试将用于存储图像的数据库设计放在一起。你们中的许多人可能有过设计数据库来存储图像的经验以及与之相关的挑战。

数据库最终可能会存储数十万张图像。我打算使用 SQL Server 2008 数据库和实体框架。计划使用 FILESTREAM 数据类型来存储图像。以下是我考虑为数据库中的每个图像存储的属性列表。

图像名称、图像类型、图像宽度、图像高度、图像水平分辨率、图像垂直分辨率、图像位深度以及最后的实际图像数据。

我想弄清楚的事情:1)我很好奇,如果我错过了图像的任何其他关键属性。2) 由于使用 FILESTREAM 数据类型,图像存储在文件系统上,因此在进行数据库备份时会产生什么影响?

谢谢!陈

4

3 回答 3

3

1)我可能在这里做了一个疯狂的假设,但如果您的图像将是数码照片,那么您可能需要考虑存储所有(如果不是,99%)数码相机生成的Exif元数据属性。

2) 使用文件流执行备份没有影响,SQL Server 在这里完成了所有繁重的工作。文件流数据将成为您的数据库 .BAK 文件的一部分,因此您无需进行任何其他文件系统备份。

您可能没有考虑到,由于 FILESTREAM 是一项新功能,因此不能与其他一些 sql server 功能一起使用,例如:

  • 数据库镜像
  • 复制(无法复制文件流列)
  • 数据库快照
于 2009-08-10T15:46:45.940 回答
0

我还会输入编码(jpeg、gif、png、bmp...)、MIME 类型(image/png)等,这样您就不必每次都解析文件名;还有文件大小(如果你需要显示它)。

于 2009-08-10T15:51:09.143 回答
0

备份将图像存储在其中以保持事务一致性。至于属性,这取决于您的需求。不过,我想不出您缺少的任何其他属性。

于 2009-08-09T20:36:28.687 回答