Tangential answer. Consider looking into Prolog, Picat, Mercury languages. You can effectively let the database design be taken care of by the language. In return you get more time to reflect on your knowledge base and ask it all sorts of questions and get a range of possible answers.
Org-roam and its web cousin webnotes both have solved designing the database for note taking purpose using g sqlite as a back end. Good options.