【问题标题】:Manage a library of images: use blobs or links管理图像库:使用 blob 或链接
【发布时间】:2013-12-13 08:44:51
【问题描述】:

我们开发了一个 .Net/WPF 应用程序,它允许用户从通过 DLL 提供的图像创建“绘图”:它可以将这些绘图保存在本机格式,或导出为图像(PNG、JPEG、BMP、...)。

作为此应用程序更新的一部分,我们希望允许用户在内部数据库中管理这些图纸以提供新功能:

  • 练习”概念的出现:练习 = 绘图 + 标题 + 描述 + 属性
  • 可用于锻炼、从当前版本创建的绘图或导入图像(例如从网络)
  • 从多个练习中创建会话

由于应用程序是单用户的,我们希望使用轻量且免费的数据库,因此我们开始使用 SQL Server Compact 将其与我们的开发环境集成。

但是,我们会向我们询问与图像管理相关的问题:

  • 将它们直接存储在数据库中是否更好(作为BLOLB)?
  • 最好将它们物理保存在计算机上,并且只在数据库中存储一个链接

SQL Server Compact 数据库的大小限制为 4 GB,但它应该为用户提供足够的灵活性。

  • 但是在性能、维护和数据共享方面,最好的解决方案是什么?
  • 您认为其他数据库 (SQLite) 可能更合适吗?

提前感谢您的反馈,

【问题讨论】:

    标签: database image sql-server-ce blob store


    【解决方案1】:

    一旦您采用引用外部数据而不是存储 BLOB 的方式,您的数据总是面临更大的损坏风险。

    只要这种风险是可以接受的,并且您在应用程序中编写代码来处理数据被破坏的情况(例如,用户从他们的文件系统中删除引用的文件),那么您将获得大量的可扩展性和性能提升有参考文献。

    如果您不能接受风险,请使用 BLOB。

    【讨论】:

    • 就数据的“安全性”而言,最好将图像存储在 BLOB 中。但就“性能”而言,如果数据库是本地的,会不会有明显的性能差异?
    • 取决于你如何定义“显着”。
    猜你喜欢
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多