2013-04-27 130 views
0

我正在開發一個項目,我必須使用上傳文件。我使用ASP.NET MVC3(C#)作爲前端,SQL Server 2008 R2作爲後端。現在上傳一個文件,我必須選擇:哪個更好?在DB中存儲文件或在DB中存儲其路徑?

1)將文件上傳到項目的特定目錄並將其路徑存儲到數據庫中(在將文件上傳到該目錄之前,我必須將文件名更改爲當前時間戳,文件將具有唯一的名稱。)

2)將文件直接上傳到數據庫中。

哪個選項會更好?我的項目以KBs(pdf/word/images)上傳文件。

+0

@CodeIgnoto,okie。在這種情況下,第二種選擇會有好處? – Dhwani 2013-04-27 06:56:38

回答

3

直接存儲在文件系統上通常會提供更好的性能。在數據庫中存儲意味着您可以在同一個事務中完成文件的插入和元數據更新(我想你會將其存儲在數據庫的某個表中)。

第三種方法是使用MSSQL的文件流功能,它可以將文件作爲數據庫中的字段處理,但也可以通過共享將文件直接作爲文件訪問。

+0

okie。在這種情況下,第二種選擇會有好處? – Dhwani 2013-04-27 06:54:54

+1

您可以獲得文件處理的事務支持,因此您可以一起更新元數據和文件。你將所有的數據放在一個地方,簡化備份等,你可以使用一個數據訪問層。 – 2013-04-27 06:57:33

0

我更喜歡將文件存儲在ftp服務器中並將其路徑放入數據庫中。另外,使用文件名的時間戳看起來不正確。使用數據庫鍵值作爲文件名是一個稍微好一點的想法。

當然,維護交易還有一個額外的複雜性 - 文件系統和數據庫應該始終保持同步。

+0

okie。在這種情況下,第二種選擇會有好處? – Dhwani 2013-04-27 06:56:03

+0

您不必明確處理交易。您可以在第二個選項中使用sql server事務。 – aquaraga 2013-04-27 07:02:52

0

存儲路徑。您可以更輕鬆地更改文件。