问题描述: 在我的应用程序中,我必须以某种格式呈现数据包的内容。一个例子:
示例 任何打包的二进制数据,例如:4 字节头、4 字节类型(类型代码具有预先定义的含义),然后是源地址、目标地址等。
以前,我制作了将数据存储在二进制文件中的自制实现(固定记录长度允许快速查找),但随着时间的推移,我意识到我正在发明某种数据库。例如,我正在为非常大的数据文件实现我自己的高效二进制存储格式。我还实现了自己的索引以在某些字段上快速运行搜索。我认为一个真正的数据库(甚至是简单的 SQLite)可以使这些东西变得透明简单。
问题#1:数据库对存储此类数据有用吗?应该如何做?请注意,这里没有一对多、多对多的映射和其他高级的东西,它只是一个简单的数据包序列,具有一定的内部结构,我想向用户显示并让他与之交互(即搜索由某个领域)。
问题#2:现在假设用户自己可以指定他的数据包的格式,即在配置文件中:每个字段的长度、它的类型、它的值的含义(在枚举的情况下)等等。如何为此扩展由数据库支持的实现?用户应该定义数据库模式吗?配置文件是否应该自动翻译成这个模式?奥姆?
问题#3:更高级……现在假设数据包的长度和内容可以不同。即,对于类型#2 的包,有一些字段,对于类型#3,还有一些其他字段,等等。但我仍然希望我的应用程序能够处理它,很好地显示所有内容并允许用户在配置文件中指定格式。它是如何完成的?
提前致谢。