Итак, у меня есть несколько объектов, которые я наблюдаю на своем сервере, и каждый час я хочу публиковать показания этих объектов в своей базе данных. Мне нужен простой способ получить их, чтобы я мог отсортировать их по дате в массиве, легко получить значения за указанный c день и очистить старые данные, которые больше не нужны с указанного c дня.
В настоящее время у меня есть две идеи о том, как я могу структурировать свои данные:
1) Разделить их на куски по частям даты
objects
- objectA
- 2020
- 01
- 22
- 01
- property1 : "Value at 1 o'clock on the 22nd of Jan, 2020"
- property2 : "Value at 1 o'clock on the 22nd of Jan, 2020"
- 02
- property1 : "Value at 2 o'clock on the 22nd of Jan, 2020"
- property2 : "Value at 2 o'clock on the 22nd of Jan, 2020"
...
- objectB
...
Этот метод дает мне преимущество в простоте запрашивая указанный c день или месяц и получая значения из него. Он также позволяет легко очищать старые данные от указанного c дня или месяца.
Однако недостатком является то, что я не могу придумать простой способ сделать так, чтобы данные в моем приложении представляли собой плоский список, отсортированный по времени (что, по большей части, - то, как мне нужно данные )
2) Сохранять данные в виде плоского списка дат в свойствах
objects
- objectA
- 2020:01:22:01
- property1 : "Value at 1 o'clock on the 22nd of Jan, 2020"
- property2 : "Value at 1 o'clock on the 22nd of Jan, 2020"
- 2020:01:22:02
- property1 : "Value at 2 o'clock on the 22nd of Jan, 2020"
- property2 : "Value at 2 o'clock on the 22nd of Jan, 2020"
...
- objectB
...
Эта модель значительно упрощает получение объектов в том формате, в котором они должны быть в приложении, однако теперь сложнее запросить только определенный c день или месяц. И очистка старых данных от определенного c дня или месяца не легка.
Что является хорошим способом сделать это на практике? Хороши ли мои методы или я должен заниматься чем-то другим? Если что-то хорошо, то как мне решить с ним обратную сторону?
Мое приложение написано на Kotlin, так что есть ли в kotlin простой способ запросить базу данных из варианта 1 и получить его? вернуть в плоский список?