I met Rasmus Lerdorf at a conference a few months ago. During his talk, one suggestion he made was that we rarely use foreign keys, because if something goes wrong with a foreign key relationship it can lock up your whole database.
Here's what foreign keys enforce that Rasmus warned against: "When one table has a foreign key to another table, the concept of referential integrity states that you may not add a record to the table that contains the foreign key unless there is a corresponding record in the linked table."
On the flip side, foreign keys are great for documentation, staying organized and establishing relationships that save coding leg work.
What can be done to mitigate the risks of foreign keys, while leveraging the benefits?
This question / answer does a great job of laying out both the benefits and risks of foreign keys, but I'm looking for more specific insight on how to avoid the pitfalls yet take advantage of the good.