I’m a long time dev I’ve used databases before as a regular dev. For my new project I’m trying something unique. it could just be a waste of time, but I have time to waste.
As part of my project I’m trying something different and specific for my app… I’m trying to use git (which is already a kind-of database), and I’m adding an addition database abstraction on top of that.
I started off by creating something that could use git as a “general purpose” storage. To explain it simply, it’s using isomorphic git to be able to connect to a git repo from a browser.
https://positive-intentions.github.io/git/demo/gui/git/storage
I then added the “database abstraction”. To explain it simply, I created the functionality to create a db schema than can then map onto files and folders (which are stored in git). That would allow me to interact with the git storage with queries. I wanted to have something like graphql there for queries to make it easier for me in my app.
https://positive-intentions.github.io/db/demo/gui/database/chat-database
This is where I need advice. I have added things like schema and details around how to handle migrations… but I’m not a database developer and I wonder what details I’m overlooking.
There are complex details in there where I can specify in the schema what parts are encrypted. I want the database to be stable and reliable as I further develop on the approach and increase complexity.
This project isn’t documented and far from finished, but I’d like to learn more about “good database development”, but I don’t even know if I’m asking the right question.
I recommend reading this book as a good survey of concepts that will be helpful to understand when building a database: https://dataintensive.net/

