Я хочу создать приложение для управления капиталом, цель состоит в том, чтобы отслеживать расходы и доходы, я не уверен, как спроектировать базу данных, я должен поместить все transactions
в один и тот же путь или использовать приведенный ниже пример?
![screenshot](https://i.stack.imgur.com/LEXNw.png)
Этот подход эффективен, потому что я легко могу определить, какие данные извлечь из БД, например, в этом году, проверяя путь между 20190101
и 20191231
.
В прошлом месяце будет 20190401
/ 20190428
, недостатком является то, что в некоторых месяцах нет точного количества дней, но я не верю, что это вызовет проблему, номер пути всегда будет ниже 31.
Он добавляет еще один узел из-за уникального идентификатора, поэтому на стороне клиента данные будут вложены два раза для выполнения сложных вычислений.
Как я могу легко найти некоторые данные, основанные на дате? Я думаю, что это самый важный параметр в этом приложении, если мне нужно собрать 10000 транзакций, чтобы найти изменение за последний месяц или баланс текущей недели, что означает, что немногие пользователи могут потреблять много ресурсов, я уверен, что это быстро, я пробовал, но это плохая производительность. Я ищу что-то, что может масштабироваться без большой загрузки ресурсов.
PS: это Firebase, база данных NOSQL. Есть несколько кошельков, мне, вероятно, понадобится текущий общий баланс или общее изменение в какой-то момент. У каждой транзакции есть категория.