the first idea that came to my mind is to use obsidian.md (or another markdown editor) with the git plugin. Markdown supports frontmatter, that allows you to add metadata to docs. It also supports cross-links between documents.
You could even go full zettlekasten (generate IDs that include timestamps), if you want to version documents more explicitly.
So would you then create a single document/file for each "entry" or "row" in your database? That would at least ensure that the ids (or filenames) of those items are unique.
It still a question of how that database becomes editable in a nice way though. Haven't seen any airtable like tools that work on such a structure.
Yes, and the dataview plugin to visualize docs in a table, list or calendar (e.g. organized by tags, to identify their types).
I am not aware of a editable table view, but you can surely have a index per document type that contains a dataview table and go to individual docs for editing.
For me, the main thing that Obsidian lacks is formula support or more advanced reporting. I can so something with dataviewjs, or going to javascript (customJS plugin) but it gets messy quickly.
You can also get nice visualization with a little work on templates and plugins: for example, I use Obsidian for weekly personal retrospective of my diary and I have a wordcloud graph in my weekly template.
You could even go full zettlekasten (generate IDs that include timestamps), if you want to version documents more explicitly.