将图片上传到路径VS数据库

时间:2011-06-26 09:20:30

标签: sql sql-server asp.net-mvc sql-server-2008 byte

我即将创建一个ASP.NET MVC应用程序,它将拥有超过2000个产品,每个产品将有大约20张照片。该应用程序将是asp.net mvc app和

我正在使用sql server 2008 r2来管理我的数据。哪种方式是更好的approcah在这里;

  • 将图片上传到路径和 将文件名存储到数据库中 为了能够做到 彼此的关系。
  • 将图片存储在数据库中 同样也是字节并且可以检索它们 从那里需要的时候。

3 个答案:

答案 0 :(得分:1)

绝对存储为路径而不是字节数组。这意味着您可以轻松地更改实际图像本身,而无需更改SQL中的任何代码或混乱(只要新文件与旧文件具有相同的名称)。

希望这有帮助。

答案 1 :(得分:1)

肯定在文件系统(存储路径)中更好,我在过去都做过。

针对SQL Server存储图像 A)投入和投出数据可能更困难,因为必须使用blob类型对象,而某些ORM并不真正满足此需求 B)您的数据库更大,因此影响您的备份/恢复策略。备份越频繁,但空间会增加。存储在文件中,是的,您仍然需要备份,但备份文件系统很容易。 C)当你的存储空间不足时你只需添加另一个NAS驱动器/服务器并开始在那里存储图像,所以水平缩放

普遍的看法并不像存储在两个地方的数据那么好,但对我来说,它更好地存储在数据类型的最佳存储介质中的数据类型。

答案 2 :(得分:1)

在使用FILESTREAM的数据库中,它结合了2个想法(文件和数据库)

  

FILESTREAM通过将varbinary(max)二进制大对象(BLOB)数据存储为文件系统上的文件,将SQL Server数据库引擎与NTFS文件系统集成在一起。 Transact-SQL语句可以插入,更新,查询,搜索和备份FILESTREAM数据。 Win32文件系统接口提供对数据的流式访问。

这会更改文件与数据库参数

如果您只想存储路径,那么您将不得不接受图像和数据库 会随着时间的推移而失去同步的事实。

相关问题