【发布时间】:2011-07-25 05:55:01
【问题描述】:
我有一个使用不同结构进行配置的软件。每次我保存配置时,结构都会转储到二进制文件中,每次加载配置时,都会读取文件并用数据填充结构。
出于某种原因,我想更改它并使用数据库来存储软件的配置。不幸的是我真的不知道如何设计桌子。
假设我有以下结构:
typedef struct StructUser {
BYTE readAccess;
BYTE writeAccess;
BYTE passLength;
BYTE nameLength;
char pass[32];
char name[32];
}
您将如何构建具有最佳灵活性(添加或删除某些元素)和最佳性能(快速获取配置)的数据库?
我起初以为每个结构都有一个表,结构中有许多列作为元素,但它似乎不太容易维护。
谢谢
【问题讨论】:
-
将结构字段映射到数据库表中的行是标准方法。只有了解所涉及的所有数据类型以及它们之间的关系,才能给出更详细的答案。
-
不幸的是,所涉及的数据类型是多种(几乎都是 c++ 类型),并且可以根据软件的规范随时发展。在您看来,我的表格的每个字段都应该是我的 C++ 结构的一个元素?
-
您可能对this question感兴趣。
-
我不得不质疑 DB 是否是这里的最佳解决方案。可能某种分层的基于文本的格式更好(例如 XML 或 JSON)?甚至是分层二进制存储,您可以在其中写入流并请求子流写入子结构? DB 不擅长添加/删除具有子结构的字段。并且在只存储一条记录时没有任何优势。
标签: c++ database sqlite database-design