In the past, I have worked with a fairly general database. It was a smart way to manage a huge system with very often changing requirements and unexpected interconnections.
The execution, however, was of 3 types of tables: the main "general" ones, in which certain data types were stored, a link table (table from, link from, table in, link to, record type) and a table of tables, determining which data types are stored and as. Of course, this created some overhead, but this was offset by the settings of the engine, which really accelerated general requests and supported complex reasonable (and rare) ones.
, , , , . , , , . " ", ( ) .