Я изучаю SQLite и C++ в рамках Qt. В качестве учебного проекта я делаю простой просмотрщик изображений, который позволяет пользователю отмечать изображения ключевыми словами, категориями, комментариями и ROI (для некоторых более поздних функций OpenCV). Это довольно простая база данных с некоторыми основными таблицами и некоторыми реляционными таблицами.Написание SQLite-менеджера: жизнеспособный подход?
Я думаю, что у меня есть основы, и ранние тесты показывают, что мои данные записи хранятся, но при написании методов управления базой данных похоже, что я собираюсь в конечном итоге использовать множество методов, особенно когда Я начинаю добавлять в поиск, сортировку, удаление и т. Д.
Это заставляет меня спросить, правильно ли я делаю это. Я вижу, как некоторые из моих логических запросов (для поиска, сортировки), вероятно, лучше относятся к другому классу типа «контроллер» и что все, что требуется этому классу менеджера, - это выполнять основные задачи создания и удаления и просто возвращать объект запроса в ответ на оператор 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);
Я также занимаюсь SQL с Qt. Но у меня есть только одна функция для вставки, удаления и т. Д. Эти функции могут использоваться для любой таблицы. Вставка, например, принимает следующие аргументы: имя таблицы, столбцы и значения. – Davlog
@Davlog - да, это имеет смысл. Конечно, я могу избавиться от ряда моих методов. Вы нашли способ справиться с этим, когда в записи есть различное количество полей? (например: мой 'addROI' против' addKeyword' выше) –
Я отправил свою функцию вставки, надеюсь, что это ответит на ваш вопрос. – Davlog