我正在 Qt 框架内学习 SQLite 和 C++。作为一个学习项目,我正在做一个简单的图像查看器,它使用户能够用关键字、类别、评论和 ROI 标记图像(用于后来的一些 OpenCV 功能)。这是一个非常简单的数据库,包含一些主表和一些关系表。
我想我已经掌握了基础知识,早期的测试表明我的记录数据正在被存储,但是在编写管理数据库的方法时,看起来我最终会得到很多方法,特别是当我开始添加时在搜索、排序、删除等方面。
这让我问我是否以正确的方式处理这个问题。我可以看到我的一些查询逻辑(用于搜索、排序)在不同的“控制器”类型类中可能会更好,而这个管理器类需要做的就是处理基本的创建和删除任务,然后只返回一个查询对象以响应作为字符串传入的 SELECT 语句。
那么,我是否以合理的方式解决这个问题?
到目前为止的管理器方法:
bool openDatabase(QString name);
void closeDatabase();
bool createTables();
bool addKeyword(QString keyword);
bool addCategory(QString category);
bool deleteKeyword(QString keyword);
bool deleteCategory(QString category);
bool addROI(int x, int y, int width, int height);
bool deleteROI(int id);
bool addImage(QString name, QString path, QByteArray image, QByteArray thumb);