【问题标题】:Using a SQL database file as project files使用 SQL 数据库文件作为项目文件
【发布时间】:2015-03-28 21:54:09
【问题描述】:

我想知道在我的软件中使用多个 SQL 数据库文件(如 sqllite (我相信它是基于单个文件的?))作为项目文件是否有意义。项目文件包含基本信息以及带有参数列表(浮点值)和测量数据列表(也是浮点)的多个记录(光谱)。

我目前使用自己的二进制格式,维护起来很麻烦。我尝试使用运行良好的 XML,但文件大小爆炸(之前为 500 kB,XML 为 7.5 MB)。
现在我想知道我是否可以构建 SQL 数据库以包含此类信息,并在我的 .NET 软件中有效地加载和保存这些数据。

(我对 SQL 不是很有经验)所以:

SQL 表可以包含子表(如 XML 中的子节点)或链接到其他表吗?

例如能不能做个表格做记录,这个表格有测量数据和参数列表的子表?

这在存储空间方面会比 XML 更有效吗?

【问题讨论】:

  • 是的,这就是数据库的设计目的。一个表可以通过共享一个公共键值与另一个表形成关系。 (sqlite.org/foreignkeys.html)
  • 所以我基本上会制作一个大的“测量数据”表,其中包含一个 X 和 Y 列以及一个外键列,我将在其中输入数据点所属记录的记录 ID?
  • 可能,您需要阅读关系数据库设计并选择最佳模型

标签: sql xml sqlite database-design


【解决方案1】:

我使用的是 SQLite 数据库。它可以使用 System.Data.SQLite 项目轻松实现到 .NET 中,甚至可以与 AnyCPU 构建一起使用。

无论是性能还是存储空间,它都运行良好。

您仍然需要非常小心地处理不同版本的数据库。如果您尝试使用旧方案将新方案保存到数据库中,则某些列或表可能不存在。为此,您需要实现一种迁移到新数据库文件的方法。

真正的优点是,它是一种开放格式,我支持这样一个前提,即用户保存的东西是他的,不需要隐藏在一个不起眼的文件结构中,如果后者没有的话带来任何显着的优势。 如果用户不能再使用您的软件,他或她仍然可以访问所有数据,如果需要,可以使用其他工具,如 SQLite 数据库浏览器。

【讨论】:

    猜你喜欢
    • 2018-02-21
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 2021-06-26
    相关资源
    最近更新 更多