So I keep track of all my finances using an Excel document (and have been doing this for many years) and it's become quite a pain. So for a fun side-project I want to implement something to handle it for me.
Initially I set out using Entity Framework with a LocalDB to handle the backend for me. But as I continually refactor this application, I'm starting to think that maybe a flat file is much better for my needs.
I would like to be able to make changes and those changes not persist until I actually save the state with a Ctrl + S. For example, just because I change my income in a future year, I don't want that to be saved to the database (allows me to develop "what-if" scenarios). It seems that this could be done with an ORM/Relational Database, but there would be a lot of rollbacks.
Other requirements would include about ~500 expense transactions a year, several investment transactions, ~50 income transactions, etc. So after 5 years of use I'm looking at 7200 transactions that need to be stored.
So looking at my requirements with the big two being the number of records and rollbacks vs commits to the database, does a flat file make more sense? Additionally, how to decide between flat files and a full-scale database? Finally, this would be for my own personal use so network concurrency, multiple users, etc. should NOT be a factor.