I'm looking at a CMS written by someone for us (it's using Joomla). Not only does his code not use foreign keys, but Joomla, at least the older version I'm looking at, doesn't. MyISAM, of course. What a PITA---I knew about the issue of referential integrity, but there's also an element of "self-documentation" that's missing if FKs aren't specified.
Then there were a couple seemingly core Joomla tables that appeared to violate some obvious database design principles re normalization.
How did it come that so many web developer types came to know so little about DBs? I'm not a DBA, but a one-semester course on DBs is enough to leave me horrified.
Here's a comment I found while googling around on these issues: "The problem isn't that InnoDB itself is slow, it's that enforcing foreign key relations is slow. I'm a big fan of referential integrity, but in a CMS it's place is in the application layer, not the data layer." Why would anyone say that? What's the point of using a DB if you're not doing to put FKs in it?