My thoughts in the OP were similar, but I did come to a slightly different solution, using a Tag Tiddler to hold table metadata, especially the list of fields denoting column names.
There is something of a mismatch between TW’s lists of tiddlers and SQL’s lists of records, and this is where it gets complicated. It’s straightforward to query to find a subset of tiddlers meeting some criteria. It’s harder to collect fields from different record types into a new data structure. In SQL, that’s simply how it works. In TW, unless we are to create some temporary tiddler—which seems really problematic—then we can’t do this. But we can display results similar to this by nesting assignment widgets (let, set, vars, etc.). Examples such as SQL Inner Join demonstrate this.
I’d only been thinking of this as custom filters for a particular set of tiddler types. Do you envision a more comprehensive mechanism?
I’d love to hear more about this. I have been looking at commonalities between different wikis with SQL-like relationships, but haven’t really been looking to build common tools for them. I think you’re interested in taking this further than that, but I’m not sure what such an approach might look like.
Because I’m focused on creating one tiddler per relationship, and giving each one a tag categorizing that relationship, I find it simpler just to assume that the tag tiddler for that relationship is just like any other Table tag tiddler, holding metadata including the field-names important to the relationship. So I haven’t found a need for a centralized table. What advantages do you find in this?
The other aspect of this I find extremely interesting is the ability to derive relationships from other ones. Anyone who shares both Parents with me is my Sibling, and anyone who shares exactly one Parent is a Half-Sibling. I don’t need to detail that relationship anywhere, just let it fall out of the data. That is intriguing to me. But I still think of it in a case-by-case basis. I don’t know if there is some general approach that would abstract such notions.

learning here for me
) I have already articulated the notion of tiddlers with a specific tag serving the same role as table rows, with fields as columns and that tag standing in for the table itself. (I know you are also suggesting using non-tag fields or title prefixes to define table rows; I have already said that I will treat that as an advanced topic, if at all.) When you restate that, I can nod along, but it doesn’t add much as far as I’m concerned.