4

一段时间以来,我一直致力于将数据从臃肿的 Excel 工作簿插入 SQL 数据库。我的团队建议保留 .xls 的备份,他们想知道将 Excel 工作簿实际放入数据库中是否是个好主意,以便我们项目中的所有相关数据放在一起。

我知道一些数据库支持插入二进制文件,但显然这不是数据库系统的最初预期用途,所以我认为这是一个坏主意。我的投票是将工作簿的 URL 放入数据库中,并将工作簿保存在我们内部网上的安全位置。

将 BLOB 放入数据库的优点(如果有的话,除了将生产数据和备份保存在同一个地方)和缺点是什么?

编辑:只是为了进一步澄清,虽然我给出了一个具体的场景,但我打算这个问题主要是关于一般的 BLOB。但是,我可以从您的回答中收集到任何有助于我解决具体情况的信息,当然,我们将不胜感激。:)

谢谢,
-罗伯特


PS 对于那些不知道的人,BLOB 是“二进制大对象”的后缀

4

3 回答 3

5

一般来说,如果有其他成本更低的存储选项,我会避免将 blob 放入数据库。当然,将 blob 存储在数据库中是有正当理由的,但我倾向于谨慎行事,将 FS 用于文件存储,将数据库用于数据结构。

由于您使用的是 SQL 2008,因此您可能还对FileStream数据类型感兴趣。它可以让你的事情变得更容易。

于 2009-06-02T13:49:15.077 回答
3

无论如何,许多 CMS 包(例如 Sharepoint)将其全部存储为 BLOB。

快速总结。我没有个人意见,因为我从来不需要在数据库中设计或开发非常大的 BLOB(例如电子表格)。我已经存储了图像和其他较小的东西。

在数据库中:

优点:假设其他数据以及 BLOB:

  • 这一切都在一个地方。
  • 备份/恢复是连贯的

缺点:

  • 数据库膨胀
  • 表现

数据库外

优点:

  • 没有数据库膨胀
  • 本地存储

缺点:

  • 备份/恢复更复杂
  • 链接断开的风险
于 2009-06-02T13:47:13.193 回答
1

在我看来,如果需要打开 Excel 电子表格,如果它是一个 blob 会变得更加困难。另一方面,您不希望在不更改数据的情况下更改备份电子表格,因此在您的情况下,这可能是一个优势。您还可以考虑要存储多少个电子表格修订版。我们经常被要求回顾来自客户的原始输入数据,这些数据可以追溯到一年或更长时间(当您获得每日文件时真的很有趣)以找到问题的根源(或至少证明是他们而不是我们!)。如果您需要查看不同版本的数据,您的 blob 需要位于相关表中。在您的情况下,这可能也是一个优势,在我看来,您几乎不需要实际访问这些数据。

于 2009-06-02T20:48:45.353 回答