gpt4 book ai didi

C++ 编码数据库元数据信息的最佳模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:55:57 25 4
gpt4 key购买 nike

我是 C++ 开发新手。

我想用 Qt 在 C++ 中开发一个简单的库来处理应用程序的配置,例如使用 SQLite 数据库,模拟 KEY、VALUE 访问。

实际上我将 SQLite3 与下表一起使用:

Component (ID <int>, Name <string>)
Keys ( COMPONENT_ID <int>, NAME <string>, Type <string>, Value <string>)

库应该有获取和放置键值对的方法。

为了简化操作,我使用了 Qt::QSqlRelationalTableModel。

这需要将一些表名和列名作为字符串传递。

定义这些数据库元数据的正确方法是什么?

我想避免使用宏或简单常量,并在主类中使用例如静态结构。

例如像下面这样的解决方案:

class ConfigurationHandler()
{
enum ConfigurationTable { COMPONENT_ID, COMPONENT_NAME };
enum Key_Table { KEY_COMPONENT, KEY_NAME, KEY_TYPE, KEY_VALUE}
struct ConfigurationTable {
{
QString tableName;
vector<string>;
}

static const ConfigurationTable component;
static const ConfigurationTable keys;
};

这是一个可行的选择吗?如何初始化上面的数据结构?

谢谢。

最佳答案

您可以只创建一个结构,其中包含有关数据库模式的所有必需信息:

class DatabaseSchema {
public:
QString component_table, component_id_field, component_name_field;
QString keys_table, keys_component_id_field, keys_name_field /*...*/ ;
};

class DatabaseOperations {
public:
/*...*/
void set_schema(const DatabaseSchema& schema);

private:
DatabaseSchema schema;
};

关于C++ 编码数据库元数据信息的最佳模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19025842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com