将图像移动到数据库中并编写代码来提取图像可能比它的价值更麻烦.它将全部回归到保护图像或性能要求的业务需求.
我建议坚持在数据库中存储文件路径或目录位置的经过验证的真实系统,并将文件保存在磁盘上.原因如下:
文件系统更易于维护.有些想法必须放在图像的结构和组织中.即每个客户的目录,每个[Attribute-X]的子目录和每个[Attribute-Y]的另一个子文件夹.在一个目录中保留太多图像将最终减慢文件访问速度(即数十万)
如果存储在数据库中的想法是对文件系统丢失的反制措施(即磁盘发生故障,或者目录被意外删除),那么我反驳的建议是当你使用源代码控制时,它不是检索任何丢失/丢失/删除文件的问题.
如果您需要扩展并转移到内容分发方案,则必须移回文件系统或执行大量提取以推送到提供程序.
它也有这样的说法:"将结构化数据保存在数据库中".Microsoft有一篇关于管理非结构化数据的文章.
如果安全性是一个需要解决的问题,那么文件系统就具有ACL的整体结构.重新考虑安全性可能超出了业务需求的范围.
有关此主题的大量讨论也可在以下位置找到:
问题3748
问题561447
将您的图像存储为varbinary
某种形式(取决于您的平台),我建议它比它的价值更麻烦.您需要扩展的工作意味着您需要维护的更多代码,单元测试以及防范缺陷.
如果您的环境可以支持SQL Server 2008,那么您可以在SQL 2008中使用其新的FileStream数据类型实现两全其美.
一篇MSDN文章将SQL 2008中的FileStream数据类型称为高性能.
SQL Skills有一篇很棒的文章,其中包含一些SQL 2008 Filestream性能测量.
这是一篇解决varbinary与FileStream和两种数据类型性能的文章.
如果您是SQL Mag订阅者,可以在SQL 2008 FileStream上的SQL Mag上看到一篇很棒的文章.
Microsoft Research文章:Blob或不Blob
我很乐意在Flickr或Facebook等大型用户群的真实场景中看到研究.
同样,这一切都可以追溯到您的业务需求.祝好运!
将图像移动到数据库中并编写代码来提取图像可能比它的价值更麻烦.它将全部回归到保护图像或性能要求的业务需求.
我建议坚持在数据库中存储文件路径或目录位置的经过验证的真实系统,并将文件保存在磁盘上.原因如下:
文件系统更易于维护.有些想法必须放在图像的结构和组织中.即每个客户的目录,每个[Attribute-X]的子目录和每个[Attribute-Y]的另一个子文件夹.在一个目录中保留太多图像将最终减慢文件访问速度(即数十万)
如果存储在数据库中的想法是对文件系统丢失的反制措施(即磁盘发生故障,或者目录被意外删除),那么我反驳的建议是当你使用源代码控制时,它不是检索任何丢失/丢失/删除文件的问题.
如果您需要扩展并转移到内容分发方案,则必须移回文件系统或执行大量提取以推送到提供程序.
它也有这样的说法:"将结构化数据保存在数据库中".Microsoft有一篇关于管理非结构化数据的文章.
如果安全性是一个需要解决的问题,那么文件系统就具有ACL的整体结构.重新考虑安全性可能超出了业务需求的范围.
有关此主题的大量讨论也可在以下位置找到:
问题3748
问题561447
将您的图像存储为varbinary
某种形式(取决于您的平台),我建议它比它的价值更麻烦.您需要扩展的工作意味着您需要维护的更多代码,单元测试以及防范缺陷.
如果您的环境可以支持SQL Server 2008,那么您可以在SQL 2008中使用其新的FileStream数据类型实现两全其美.
一篇MSDN文章将SQL 2008中的FileStream数据类型称为高性能.
SQL Skills有一篇很棒的文章,其中包含一些SQL 2008 Filestream性能测量.
这是一篇解决varbinary与FileStream和两种数据类型性能的文章.
如果您是SQL Mag订阅者,可以在SQL 2008 FileStream上的SQL Mag上看到一篇很棒的文章.
Microsoft Research文章:Blob或不Blob
我很乐意在Flickr或Facebook等大型用户群的真实场景中看到研究.
同样,这一切都可以追溯到您的业务需求.祝好运!