12 ms·
Gay marriage: the database engineering perspective
- kirse 18y agoIs this how were going to sneak useless articles onto the front page now? Take completely-unrelated-to-Hacking topic X and apply secondary "Engineering/Hacker opinion" Y to it? "Well, condition Y now makes this Hacker-related, let's submit it!"
- Sujan 18y agoHave you read it? It is more about the connection of database engineering and "the real world" than about gay marriage.
- kirse 18y agoI did, in fact, read the article before posting this, and would have been entirely fine with the article if it just objectively looked at the database issues without injecting... -- This: It's asinine to do it this way. However, there is a good reason why I haven't just skipped schemas (schemae?) One to Six. There are a lot of people in the world who actually think like this. This is their for-real, no-joking conception of "marriage". They do not grasp that men and women are interchangeable, as a result of which homosexual marriages create repulsive integrity problems in their heads. "But if they're both guys, which one is the wife?" How sad. -- And this: Finally we are reaching something which is non-stupid and non-sexist enough that it might actually exist somewhere in reality. This schema is reasonably sensible assuming you live in a fairly God-fearing administrative district. -- And this... As an aside, I have actually considered that laws against (or implicitly disallowing) gay marriage are, actually, sexist. For example, suppose I lived somewhere with antihomonuptial legislation. As I am a man, any woman in that district has the right to marry me. (As well they should.) But any man in that district who wanted to marry me does not have that right. The women have a right which the men do not have. Likewise, if there was a nubile woman nearby, I (and any other man) would have the right to marry that woman. But any nearby woman would not have that right. The men have a right which women do not have. Sexist! Anti-gay-marriage laws throw a very real legislative dividing line between two sets of people on the world, and say, "all marriages must cross this line". But any law which divides men from women is clearly sexist, and, as I've stated above, closed-minded towards unconventional gender assignments who don't clearly fall on either side. And there's plenty more I won't quote for the sake of brevity. The article has a full freaking ASIDE with personal opinion weighing into the issue of gay marriage, it's pretty damn obvious this is just political opinion. Political opinion with an Engineering slant, NOT something Hacker News worthy.
- IsaacSchlueter 18y agoAre you saying that hackers don't have political opinions, or that we don't like discussing them? Either way, the fact that you have such a strong opinion about it seems to disprove your own argument, don't you think? I'm finding this article very entertaining. And it's clearly stimulating some rousing commentary on this board already. The great thing about HN is that you can just ignore anything you think shouldn't be here. Don't vote it up, don't comment on it, and if others agree with you and do the same, it'll fall off. Lots of articles never make the front page. If you were intrigued enough to read it, and then moved enough to comment on it, then that proves it should be here.
- axod 18y agoI agree. It's just a political rant disguised as a database article. "They do not grasp that men and women are interchangeable" - sure, because men can give birth too. Right?
- Sujan 18y agomarriage isn't about giving birth.
- axod 18y agoI agree. But you can't claim that "men and women are interchangeable", when for some things, they are clearly not.
- Sujan 18y agoI understood his point was that in marriage (without the stuff culturally connected to it) they are. And this sounds valid to me.
- cousin_it 18y agoWhoa there. Marriage is not so much a right as a societal mechanism with many purposes. For the female: make sure the provider doesn't run away. For the male: monogamy gives non-alpha males a chance of having offspring. For the child: life support. For government: bind people into clumsy units that you can tax, threaten etc. at will. For ethnic and religious groups: arranged marriage is a way around natural selection, letting you enforce "proper" genetics and upbringing of the next generation. When people start talking about gay marriage, all of this gets instantly forgotten.
- potatolicious 18y agoI find it very interesting because the solution he came to is actually how it works in many cultures - i.e. binary marriages. Different cultures have different contexts when it comes to marriage. Some are monogamous, but even more are polygamous, where the husband marries the wives, or the wife marries the husbands... It all screams "graph", and I think in the end that's the only way we can represent it. Which is funny, because that's already how we represent any other form of human relationships - romantic or otherwise...
- yters 18y agoI think a graph is too static and either/or ish. Instead, there should be links defining the relationship between everyone and everyone, where the links' values are a function of something; such as time, or the values of other links, etc. But then this raises the question of how this maps to the legal/social realm? Well, first we have to chip everyone. Then, once we've extracted the global social network, we can define, in real time, the legal and social value and rights a person has at any given instant.
- silentbicycle 18y agoThere's a combinatorial explosion if you do that - the point is to focus on modeling relevant information. Note that the author throws out the fields for sex and gender identity, because they complicate things, and aren't really needed when just creating a database for who is married to whom for (presumably) tax purposes.
- yters 18y agoAnd what do we do with combinatorial explosions? Stochastic algorithms and metaheuristics!
- gabrielroth 18y agoAh yes, sneaky. Because of course there's no way for HN readers to discover the full content of the article before voting on it.
- syntax-case 18y agoI'll get downmodded for saying this, but HN is basically: web programming - the gay perspective.
- Sujan 18y agois this a minus or just a way to seperate these two things like in a headline or title? (sorry, not a native speaker. these little things sometimes irritate me)
- silentbicycle 18y agoAs a native speaker, I'm pretty sure it's a separator. Reading it as "web programming: the gay perspective" may help. I'm disregarding the content of their point, but that's the form.
- syntax-case 18y agoI bet if some famous gay hacker (you know who you are) wrote a book with this title, it would sell.
- Sujan 18y agothank you.
- silentbicycle 18y agoIt's a pretty good article about how assumptions manifest in database schemas, sometimes unintentionally, and these can lead to major maintenance problems down the line.
- huherto 18y agoIt was very interesting to me. Our start up is a dating site an I did not allow gay couples. It is not a moral thing, it just seemed that it made the database design very complicated. The article describes several approaches that may be useful to me.
- kajecounterhack 18y agoHey just a heads up: http://latimesblogs.latimes.com/technology/2008/11/eharmony-goes-g.html http://latimesblogs.latimes.com/technology/2008/11/eharmony-...
- deleted 18y ago[deleted]
- yters 18y agoWhat a speciest. Or rather, what a sentiencetist. Sure, marrying myself is a tax scam, but marrying my rock isn't. My rock needs regular polishing, and why should sentient beings get all the rights? They just happen to have a more complex AI algorithm than my rock does, and that's not its fault. He should get rid of the 'human' heading altogether and just have 'thing.' Plus, things aren't static, they are composed of matter, and the matter is always changing form and mixing and matching with other matter. Not sure how this should be represented, though. Maybe each particle should have its own entry, though those aren't static either. Database design is tough.
- Sujan 18y ago> Maybe each particle should have its own entry Premature Databaseation...
- yters 18y agoHow would you construct the DB?
- pavel_lishin 18y agoIt would make sense to me that every cell in your body is in a polygamist marriage, which is you, which can in turn marry other things. But does that mean that your liver cell is married to your partner's brain cell? Not at all. What this means is that marriages are potential partners as well! Model that.
- lst 18y agoThis kind of problems arise when people decide to change what Nature decided to be a Constant...
- yan 18y agoPeople are not part of nature?
- Sujan 18y agoa hole is a hole...
- lst 18y agoIt seems I need to explain better: Nature decided that so called "gays" (an artificial term, created in our modern times) can't procreate, so if you would make an island for them, good old Nature would answer with extinction... (I think Nature is really discriminating here. Someone should sue It.)
- gommm 18y agoWell Nature (or God or whatever) decided that some people (through illness, genetical defect or whatever) are sterile and can't procreate... So they shouldn't be allowed to marry?
- lst 18y agoAll homosexual marriages are sterile. Some heterosexual marriages are sterile, too. In my country, children are (currently!) really fortunate: they are guaranteed to have a mother and a father (yes, I know already your objections), and, as psychology is able to demonstrate, this is still the sanest and most harmonic way to grow children. Why do we always exclude children from this reasoning?
- kiplinger 18y agoat some odd level, your post intrigues me, are you saying that gay relationships being "unnatural" is why design data around it is so tough?
- kiplinger 18y agoI find this article kind of silly as it pertains to Gay Marriage as a political issue. The politicians who are voting (or in most cases, not voting) on this issue care little and understand less about the data management side of things, and furthermore when has government EVER been efficient? Interesting from a database POV, though.
- deleted 18y ago[deleted]
- jrockway 18y agoThis article convinced me to write a blurb about why I like object databases: http://news.ycombinator.com/item?id=372935 http://news.ycombinator.com/item?id=372935 Much cleaner than any of the models from the article, IMHO.
- tdoggette 18y agoI love Sam "sam512" Hughes, the owner of qntm.org. I first ran into his writing on Everything2, the old-but-not-dead collaborative writing site. His science fiction is absolutely exemplary, especially the "Ed Stories" and the "Fine Structure" series. I would suggest that you all check it out, along with some of the other essays on qntm.org.
- mnemonicsloth 18y agoHis "How to Destroy The Earth" is a perfect example of a form we could use a lot more of these days -- comic science.
- sridharvembu 18y agoHere is fully normalized relational model. I will adopt a simple notation Table: <PrimaryKeyID>, Column1, Column2 where the <> denotes the column to be primary key and Column1, Column2 etc. denote regular non-key attributes. The notation ForeignKeyID from SomeTable denotes a foreign key referring to a row in SomeTable. Persons: <PersonID>, Name, DateOfBirth Men and Women are defined in separate tables, to enforce integrity constraints later, which is why it is not modeled as a Gender attribute in Persons table. These tables have no attributes, simply a listing of men and women. It is a perfectly valid relation that has only one column, by the way. Note that the foreign key here is also the primary key of the table. Men:<PersonID from Persons> Women: <PersonID from Persons> This represents a basic marriage, the only attribute of which is the date. Many specific forms of marriage are captured below. Marraiges: <MarriageID>, DateOfMarriage MarriageID is the primary key for the tables below. The design below permits polygamy, so further integrity constraints would be needed to restrict it. If a marriage is not permitted to be dissolved and no polygamy is permitted, we can place a uniqueness constraint on both Men and Women attributes below. If all types of marriages are permitted in all jurisdictions, these 3 tables below could be unified. ConventionalMarriages: <MarriageID from Marriages>, PersonID from Men, PersonID from Women GayMarriages: <MarriageID from Marriages>, PersonID from Men, PersonID from Men LesbianMarriages: similar to above Notice how a marriage has to exist for a divorce to exist Divorces: <MarriageID from Marriages>, DivorceDate Some features of the model: if a person A & B marry and then they terminate a marriage, and remarry again, it gets a new marriageID. Some integrity constraints: a) Zero or One marriage at a time rule: If a PersonID occurs more than once in the Marriages table, then order the marriages by marriage date, order Divorces by DivorceDate, and enforce the rule: for all except last MarriageID in Ordered(Marriages), ensure Divorces(MarriageID) exists, and DivorceDate(MarriageID) < MarriageDate(next(MarriageID)) b) Polygamy would require more complex integrity constraints. The nice thing about thinking about the problem relationally is that you focus on the data and its interrelationships, and avoid language considerations. Notice how a fully normalized relational model captures a lot of the constraints automatically, and only the most complex of constraints need to be separately stated. Finally, note that this is an abstract model and should be separated from details of storage.