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);