I can't say I've even seen a database that had redundant man/woman tables in this way. Regardless of where your politics lie on the issue, it's a violation of normal form with no benefit and any number of inherent problems.
When I was writing code for a medical facility, the guy who designed the database was as straight-laced and socially conservative as you'll meet.
But his design handled same-sex marriage/bigamy/polygamy/transgender issues, etc.
(It was a mental health facility. You get all sorts of interesting data problems when tracking the outliers.)
His philosophy on the design --and I'd imagine this isn't so odd amongst geeks-- was that data was data and needed to be tracked in a proper and robust manner, regardless of rightness or wrongness or personal feelings.
Assuming a male/female table is a reasonable logical starting point because 'some people feel this way' is akin to suggesting redundant christian/muslim/dirty_atheist tables would/should be expected to occur in professional code, because 'some people feel this way'.
Well, the author himself says, "Finally we are reaching something which is non-stupid and non-sexist enough that it might actually exist somewhere in reality" I think the male/female tables were meant to be a model of how people actually think, as is the whole of the article, not how any even incompetent data modeler would model the problem (except in the second half, where acceptable mental models and acceptable data models converge).
Assuming a male/female table is really mislabelling things, these are both 'people', and a marriage can then be simply construed as a relationship between two (or more!) people.
Their other labels are just attributes stored in fields in the people table.
The simplest solution is actually the most robust. Any specialization adds complexity and rigidity.
When I was writing code for a medical facility, the guy who designed the database was as straight-laced and socially conservative as you'll meet.
But his design handled same-sex marriage/bigamy/polygamy/transgender issues, etc.
(It was a mental health facility. You get all sorts of interesting data problems when tracking the outliers.)
His philosophy on the design --and I'd imagine this isn't so odd amongst geeks-- was that data was data and needed to be tracked in a proper and robust manner, regardless of rightness or wrongness or personal feelings.
Assuming a male/female table is a reasonable logical starting point because 'some people feel this way' is akin to suggesting redundant christian/muslim/dirty_atheist tables would/should be expected to occur in professional code, because 'some people feel this way'.