This is where I am still wrestling, and reading copiously.
I was 100% clear I needed a conventional relational database, before then drifting away from that idea towards more radical concepts like a Prevalence Layer, before drifting back to where I started.
Things to bear in mind:
- A database could be used to store data in a form that could accessed in a variety of ways.
- I can pick and choose and even change the database that suits me best, without re-coding the whole app
- I can use just a few very fundamental constraints to protect my data - protect it from my own code as much as anything! If nothing else at least I can totally forbid unbalanced postings - something which I have (amazingly) seen happen in more than one commercial accounting application.
- I will probably use the database to do the absolute bare minimum in terms of functions and logic. Python is probably easier, and allows me to change database if necessary. I am much less likely to change language.