SQL и Qt 65

SQL и Qt

Кеширование запросов и инвалидация кеша в слое доступа к данным

Введение Некоторые данные запрашиваются значительно чаще, чем изменяются — справочник категорий товаров, список стран, настройки приложения. Повторное обращение к базе данных за такими данными при каждом запросе —…

SQL и Qt

Подключение NoSQL (MongoDB) из Qt-приложения без QtSql

Введение Qt SQL Module (QSqlDatabase, QSqlQuery) спроектирован специально для реляционных баз данных и не поддерживает NoSQL-хранилища типа MongoDB напрямую. Если приложению нужен доступ к MongoDB (например, для хранения…

SQL и Qt

Тестирование слоя данных: in-memory SQLite и mock-репозитории

Введение Бизнес-логика, зависящая от репозиториев (статья 231), должна быть тестируема без необходимости поднимать реальную, полноценную базу данных для каждого запуска тестов. В статье разберём два взаимодополняющих подхода: тестирование…

SQL и Qt

Сравнение самодельного ORM-слоя с QSqlTableModel: когда что выбрать

Введение В заключительной статье цикла подведём итог: мы построили достаточно полноценный самодельный слой абстракции — repository, маппинг через рефлексию, Unit of Work, кеширование — но QSqlTableModel, разобранный в…

SQL и Qt

INSERT, UPDATE, DELETE: модификация данных

Введение Помимо чтения данных (статья 394), приложениям нужно их изменять — в статье разберём три основные команды модификации: INSERT (добавление новых строк), UPDATE (изменение существующих), и DELETE (удаление),…

SQL и Qt

Типы данных SQL: числа, строки, даты, NULL и его особенности

Введение Статья 393 кратко упомянула типы данных столбцов — в этой статье разберём их подробнее: основные категории (числа, строки, даты/время), и особенно тонкую, часто неправильно понимаемую концепцию NULL,…

SQL и Qt

Первичные и внешние ключи: связи между таблицами

Введение Статья 393 представила ключи концептуально — в этой статье разберём их подробнее: разные подходы к выбору первичного ключа (естественный против суррогатного), и поведение внешних ключей при удалении/изменении…

SQL и Qt

JOIN: INNER, LEFT, RIGHT, FULL — объединение таблиц

Введение Связи между таблицами, установленные через внешние ключи (статья 397), реализуются в запросах через JOIN — объединение строк из нескольких таблиц на основе условия соответствия. В статье разберём…