We do not use foreign keys (2016)
The number of times I’ve seen serious data corruption because “foreign keys are bad and we can just enforce it in code” is amazing.  There is zero excuse to not use FK’s<p>Any database that doesn’t use FK’s is almost guaranteed to have crap in it that didn’t get cleaned up, resulting in data corruption (and yes, dangling stuff in tables count as data corruption).<p>Developers aren’t perfect.  Shit <i>will</i> slip through even with the most rigorous process.  The database should always provide tools to keep its self from getting corrupted.  This is why good database systems have constraints like FK’s.  If your database software makes using those tools painful (cough MySQL), get a better database system.<p>Not using FK’s is just plain old ignorance.