Лично я думаю, что это хорошая идея, но я немного предвзят, потому что моя работа на полный рабочий день - это создание системы учета, основанной на CQRS, Event Sourcing и базе данных документов.
Вот почему:
Источник событий и бухгалтерский учет основаны на том же принципе. Вы ничего не удаляете, вы только изменяете. Если вы добавили неправильную транзакцию, вы не удалите ее. Вы создаете офсетную транзакцию. То же самое с событиями, вы не удаляете их, вы просто создаете событие, которое отменяет первое. Это означает, что вы публикуете много TransactionAddedEvent.
Далее, если вы ведете двойной учет, запись транзакции отличается от того, как вы просматриваете ее на экране (особенно в балансе). Следовательно, мне снова нравится cqrs. Мы можем хранить данные, используя правильные принципы учета, но наша модель чтения может быть оптимизирована для отображения данных так, как вы хотите их просматривать.
В балансе вы хотите просмотреть все записи для данной учетной записи. Вы не хотите видеть транзакцию, потому что транзакция имеет две стороны. Вы хотите видеть только запись, которая влияет на эту учетную запись.
Таким образом, в вашем документе db у вас будет коллекция записей.
Это делает запрос очень простым. Если вы хотите просмотреть все записи для учетной записи, просто скажите SELECT * FROM Entries WHERE AccountId = 1. Я знаю, что это SQL, но все понимают простоту этого запроса. Это так же просто в документе БД. Плюс, это будет молниеносно.
Затем можно создать баланс с группировкой запросов по учету и установлением ограничения на дату. Обратите внимание, что объединения вообще не нужны, что делает документ БД отличным выбором.