2012-05-11 140 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