有一段时间我一直在努力将数据从膨胀的Excel工作簿插入到SQL数据库中。我的团队建议保留.xls的备份,他们想知道将Excel工作簿实际放在数据库中是否一个好主意,以便我们项目中的所有相关数据都在一起。
我知道有些数据库支持二进制文件的插入,但显然这不是数据库系统最初的预期用途,所以我认为这是一个坏主意。我的投票是将URL放到数据库中的工作簿中,并将工作簿保存在我们的Intranet上的安全位置。
除了将生产数据和备份保存在同一个地方之外,有什么优点(如果有的话)和将BLOB放在数据库中的缺点?
编辑:为了进一步澄清,虽然我给出了一个特定的场景,但我打算这个问题主要是关于一般的BLOB。但是,无论我能为你的回答收集什么,这将有助于我在我的具体情况,当然,赞赏。 :)
谢谢,
-Robert
附:对于那些不知道的人,BLOB是“Binary Large Object”的缩写词
答案 0 :(得分:5)
一般情况下,如果存在其他成本较低的存储选项,我会避免将blob放入数据库中。当然,在数据库中存储blob是有正当理由的,但我倾向于谨慎,并使用FS进行文件存储,使用数据库进行数据结构。
由于您使用的是SQL 2008,因此您可能也对FileStream数据类型感兴趣。它可以让你的事情变得更轻松。
答案 1 :(得分:2)
无论如何,许多CMS软件包(例如Sharepoint)都将它们全部存储为BLOB。
快速摘要。我没有个人意见,因为我从来没有在数据库中设计或开发非常大的BLOB(例如电子表格)。我存储了图像和其他较小的东西。
优点: 假设其他数据以及BLOB:
缺点:
优点:
缺点:
答案 2 :(得分:1)
在我看来,如果需要,打开Excel电子表格会变得更加困难,如果它是一个blob。另一方面,您不希望在没有数据更改的情况下更改备份电子表格,因此在您的情况下,这可能是一个优势。您还可以考虑要存储的电子表格的修订数量。我们经常被要求回顾客户的原始输入数据,这些数据可以追溯到一年或更长时间(当您获得每日文件时非常有趣)以找到问题的根源(或者至少证明它是他们而不是我们!)。如果需要查看不同版本的数据,则需要将blob放在相关表中。在你的情况下,这也可能是一个优点,因为在我看来,你很少需要实际访问这些数据。