看完上面的问题后,似乎对图像存储与数据库的首选方法是存储在数据库中唯一的文件路径。但是,这些答案中的大部分似乎都集中在Web服务器上。
就我而言,我正在开发一个桌面应用程序,该应用程序将在Intranet中的多台计算机上使用。专用服务器将托管数据库,其中包含与在各种设备上执行测试有关的信息。
图像需要以某种方式存储在服务器上。在这种情况下,将图像存储在数据库中是否是正确的方法,甚至是唯一的方法?
优点:
- 备份仅限于数据库中。
- 无需打开服务器的文件系统到网络。
- 用于服务器信息访问的单一协议。
- 受保护的文件访问。 (用户不能进去,并删除所有图像)
缺点
- 性能问题在未来如果有太多的图像。
编辑:如标签中所述,应用程序正在使用C#/ .NET编写。如果在这种情况下将图像写入文件系统是一个选项,我可以使用一些帮助了解如何完成此操作。在下面的评论中详细阐述了一些内容,现在我假定一个MySQL数据库,尽管SQL Server 2008的FileStream功能可能会改变这种情况。
同样在我的情况下,图像会经常被添加,并且在此之后可以被认为是只读的,因为它们不应该被改变,并且将在需要时被读出。图像可能会很小(每个〜70K),而且我还在考虑服务器上的其他二进制格式存储,每个文件大约20K,我可能会应用相同的方法进行存储和检索。
为了简化应用程序,我同意这一点。我绝对不会有超过1GB的文件......对于这个问题,任何超过25kb的文件的可能性很小(灰度超声图像压缩很好)。他们不可能在一年内使用1GB的数据。除此之外,性能不是一个大问题,因为会有很少的查询,其中大部分将在后台进行。 – 2009-12-15 21:57:43
如果我可以选择多个答案,我会,但这可能是我要去的。应用程序的简单性与任何数据的小尺寸相结合似乎并不能证明Web /图像服务器是合理的。如果表现是必要的,或者我有更多的数据,我可能会用pcampbell的方法去做,但Mark Ewer的经验似乎也指出这对我们的需求来说已经足够了。感谢大家。 – 2009-12-16 18:47:53