Passed on through an IRC channel is Gay marriage: the database engineering perspective. Really it has almost nothing to do with Gay Marriage, but more the act of iterating through a (seemingly) simple problem for a database design. A good read.
I object on the basis that your table names are not singular nouns. who would write `marriages`.`id` when you're obviously talking baout the id of a particular marriage; that would be written marriage_id, so why wouldn't/shouldn't the table be marriage?
I rest My case