数据库设计来管理串口数据?

时间:2010-12-21 03:43:58

标签: database

我正在编写代码来捕获串行端口数据(例如千分尺)并执行以下操作

  1. 实时显示和绘图
  2. 通过焦点和重新测量来删除/修改/替换现有数据,
  3. 将数据保存在某处以进行其他统计分析(例如在Excel中)。因此.csv也是一个选项
  4. 因为每次测量都可能捕获数百到数千个数据(测量点),我不确定如何设计我的数据库 - 我应该为每个收到的数据创建一个新行,还是应该将所有数据输入一个数组和存储为超长字符串,用逗号分隔成数据库?对于这样的应用程序,我是否需要Server 2008或Server 2008 Express就足够了。他们在表现方面的优缺点是什么?

    是否可以创建诸如应用程序,其中客户端不需要安装sql server?

3 个答案:

答案 0 :(得分:0)

首先回答你的上一个问题,看看SQLite,因为它是免费的开源,我很确定他们的许可证是空的。无需为您的用户安装任何内容。可以使用您的代码编译SQLite。

要回答您的主要问题,我建议只有在真正有意义的情况下才使用数据库。您是要对数据运行查询,还是只是想通过某种标识符来存储和检索条目?我不鼓励将它存储为超长逗号分隔的字符串,而是查看BLOB类型。使用BLOB,您可以将数据类型放入数据库中,这样您就可以轻松地将它们取回,而且我相信它更有效率。如果你需要对它进行某种文本查询,我只建议使用TEXT类型。例如全文搜索

答案 1 :(得分:0)

如果您认为巨型字符串方法对您的应用程序有意义,那么您可能最好使用文本文件。关系数据库仅在数据结构化时提供好处。如果你使用数据库,那应该是因为你在行和列中存储了谨慎的值。

进程外数据库让我觉得这个项目不匹配。你在解决方案中考虑过SQLite或其他一些编译或链接吗?您可能会获得那些在运行中运行的大型测量矢量的更快吞吐量。

答案 2 :(得分:0)

你想要什么(或者你认为你想要什么)关系数据库?

根据您在此处表达的简单要求(并假设没有其他要求),我建议使用平面文件(可以是纯文本,每行一个样本或二进制文件)。但我真的认为我没有足够的信息来代表你做出决定。一些关键问题是:

  1. 您是否需要与使用数据的其他人共享数据,通过网络在哪里? (这将决定您保存数据的格式以及其他一些内容)
  2. 您需要存储多少数据,测量的速度以及测量和存储此数据的时间段? (这将告诉您是否使用压缩或其他一些节省空间的方案,这也将为您提供资源要求的指示)
  3. 它是否容易检索? (这将指出您需要什么样的数据管理:如何命名文件,存储它们的位置......)
  4. 您需要做什么样的分析? (你想分析几个文件,只有一个文件,给定日期的数据,给定端口的数据......?)
  5. ......以及更多此类问题。

    根据这些问题的答案,您可能会对旧的386计算机感到满意,或者您可能需要现代的8核计算机。