Какой лучший способ сохранить даты?
У меня есть база данных, куда я сохраняю название привычки и другие данные. Также я хочу сохранить очень много дат из календаря (у каждой привычки свое множество дат).
- Что лучше использовать - sharedPreferences или SQLite?
- Какой наилучший способ сохранить даты одной привычки, чтобы они не перемешались с датами другой привычки, и я могла их все быстро достать (или хотя бы все даты для одного месяца для данной привычки)?
- И в каком формате их лучше хранить (String, int)?
Ответы (2 шт):
Автор решения: KoVadim
→ Ссылка
- Если дат не много - используйте sharedPreferences. Если много (думаю десятки и больше) и по ним нужно будет делать разные выборки, SQLite будет значительно удобнее.
- Тут сложно сказать точно, надо смотреть целевую задачу, но возможно, для этого нужна будет одна таблица с двумя столбцами дата и id привычки. Конечно, будет ещё одна таблица, где по id привычки будет храниться имя.
- Дату лучше сохранять в виде DateTime (для sqlite это просто INTEGER ) и тогда станет сразу доступна куча полезных функций.
Чтобы выбрать все даты для какой-то привычки для текущего месяца, можно посмотреть в этот вопрос https://stackoverflow.com/questions/36820890/select-data-from-current-month-in-android-with-sqlite
и составить где-то такой запрос:
SELECT hdate
FROM habbits
WHERE
strftime('%Y',hdate) = strftime('%Y',date('now'))
AND
strftime('%m',hdate) = strftime('%m',date('now'))