TL;DR
Существуют ли какие-либо известные шаблоны / стратегии, которые можно использовать для проверки данных на основе данных в таблице базы данных в приложениях Android?
Рассмотрим базу данных SQLiteтаблица со следующими столбцами:
- дата_ начала
- время_ начала
- дата_ конца
- время_ конца
Мне нужноубедитесь, что запись не может быть вставлена в вышеприведенную таблицу, если start_date, start_time или end_date, end_time вставляемой записи попадают в диапазон существующей записи.
Пример:
Существующая запись
start_date end_date start_time end_time
2019-02-11 2019-02-15 22:00 23:30
Новая запись для вставки
start_date end_date start_time end_time
2019-02-12 2019-02-13 22:00 23:30
Поскольку вышеупомянутая запись падаетмежду диапазоном даты и времени существующей записи вставка не должна быть разрешена пользовательским интерфейсом.
Учитывая вышеприведенный пример, я могу выполнить эту проверку двумя способами:
- Сформулируйте самодостаточный SQL-запрос, который проверит, попадает ли диапазон времени новой вставляемой записи в диапазон дат существующей записи.Если такая запись существует, не допускайте вставки новой записи ИЛИ
- Запросите все записи из таблицы, просматривайте их одну за другой в коде
Java
(черезa Cursor
) и если какая-либо строка попадает в диапазон дат, не разрешайте вставку.
Учитывая тот факт, что сценарий использования для приложения таков, что рассматриваемая таблица будетскорее всего, не более 20-30 записей, выборка всех строк и итерация по ним с использованием Cursor
в Java
на самом деле не будут такими дорогостоящими по сравнению с выполнением SQL-запроса.С другой стороны, сложный запрос к базе данных с 20-30 записями может привести к большему количеству операций ввода-вывода.
Вышеупомянутые два подхода приходят на ум для проверки данных перед их вставкой в базу данных.Я предполагаю, что проверка данных из таблицы базы данных является распространенным случаем использования в приложениях Android.
Существуют ли какие-либо известные шаблоны / стратегии, которые можно использовать для проверки данных на основе данных в таблице базы данных в приложениях Android?