哪个更好?在DB中存储文件或在DB中存储其路径?

时间:2013-04-27 06:45:38

标签: c# sql-server asp.net-mvc-3 sql-server-2008

我正在开发一个项目,我必须使用上传文件。我使用ASP.NET MVC3(C#)作为前端,使用SQL Server 2008 R2作为后端。现在上传文件我必须选择:

1)将文件上传到项目的特定目录并将其路径存储到数据库中(在将文件上传到该目录之前,我必须将文件名更改为当前时间戳,以便所有文件都具有唯一名称。)

2)将文件直接上传到数据库中。

哪个选项更好?我的项目以KB格式上传文件(pdf / word / images)。

3 个答案:

答案 0 :(得分:3)

直接存储在文件系统上通常可以提供更好的性能。存储在数据库中意味着您可以在同一事务中完成文件的插入和更新(我认为您将存储在数据库的某个表中)。

第三种选择是使用MSSQL的文件流功能,使您可以将文件作为数据库中的字段处理,但也可以通过共享直接访问它们。

答案 1 :(得分:0)

我更喜欢将文件存储在ftp服务器中并将其路径放在数据库中。此外,使用文件名的时间戳似乎不对。使用db key值作为文件名是一个更好的主意。

当然,维护事务还有一个额外的复杂性 - 文件系统和数据库应始终保持同步。

答案 2 :(得分:0)

存储路径。您可以更轻松地更改文件。