gpt4 book ai didi

c++ - 编写 SQLite 管理器类 : viable approach?

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

我正在 Qt 框架内学习 SQLite 和 C++。作为一个学习项目,我正在做一个简单的图像查看器,它使用户能够使用关键字、类别、评论和 ROI(用于稍后的 OpenCV 功能)来标记图像。这是一个非常简单的数据库,包含一些主表和一些关系表。

我认为我已经掌握了基础知识,早期测试表明我的记录数据正在存储,但是在编写管理数据库的方法时,看起来我最终会得到很多方法,尤其是当我开始添加搜索、排序、删除等

这让我问我是否以正确的方式处理这个问题。我可以看到我的一些查询逻辑(用于搜索、排序)在不同的“ Controller ”类型类中可能会更好,而且这个管理器类需要做的就是处理基本的创建和删除任务,然后返回一个响应作为字符串传入的 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);

最佳答案

您可能应该使用 Qt 的 Model View Framework .重要的类有 QSqlQueryModelQSqlTableModelQSqlRelationalTableModel。为了使您的 UI 与数据库结构隔离,一个合理的方法是添加 view models对于您拥有的特定用例。然后,您可以轻松地将它们链接到例如基于 Qt Quick 的用户界面。

您提出的面向功能的界面并没有什么特别的错误,只是它需要大量无聊的胶水代码才能将其用于用户界面。最好将此类胶水代码分解为代理 View 模型,因为您正在使用文档化的 API,然后同事可以轻松地使用它。

关于c++ - 编写 SQLite 管理器类 : viable approach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620738/

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