我是新手C ++开发人员。
我想用Qt开发一个简单的C ++库来处理应用程序的配置,例如使用SQLite数据库,模拟KEY,VALUE访问。
实际上我使用SQLite3和以下表格:
Component (ID <int>, Name <string>)
Keys ( COMPONENT_ID <int>, NAME <string>, Type <string>, Value <string>)
库应具有获取和配置Key,Value对的方法。
为了简化我正在使用的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;
};
这是一个可行的选择吗?如何初始化上面的数据结构?
感谢。
答案 0 :(得分:0)
您只需创建一个包含有关数据库架构的所有必需信息的结构:
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;
};