2012-05-11 139 views
6

在數據庫中存儲有關BLOB的信息的最佳方式是什麼?文件擴展名(.txt,.rar)還是MIME類型?SQL:保存MIME類型或擴展名?

另外,有什麼更好的:存儲文件名有或沒有擴展名(「文件」或「file.txt」)?

我主要討論的是桌面應用程序,而不是Web應用程序。

回答

6

如果我們談論的是文件上傳存儲例如我會永遠保存以下字段:

  • 文件 - VARBINARY(MAX)
  • 文件名 - 爲nvarchar(255)(包括文件擴展名,例如「myfile.txt的」)
  • 文件類型 - 爲nvarchar(255)(MIME類型)

MIME類型是很重要的,如果它是一個基於Web的應用程序,並要允許文件下載一些POI NT。使用MIME類型可以告訴瀏覽器如何最好地處理文件。

因此,直接回答您的問題是同時保存MIME類型和擴展名。原因是您無法確保提供了正確的文件擴展名,所以您需要MIME類型來識別文件類型。但是您應該使用文件名存儲擴展名,以便您可以在下載時提供有效的文件名。

+0

謝謝你的想法,聽起來很合理。我主要討論的是桌面應用程序,而不是Web應用程序。 – SeToY

+1

@SeToY:即使你不需要它們,我仍然會始終存儲所有3位數據。因爲如果你從一開始就不能獲得信息,那麼以後就很難。在這種情況下,您應該準備好要求更改的要求。也許你提供了一個數據門戶網站,也許你決定做一個'在應用程序文件閱讀器'。 – musefan

+0

好的,所以存儲MIME類型總是比存儲擴展名更好。謝謝! :) – SeToY