There are a few good tips outlined here, but with everything there are two sides to every story. There’s some good discussion in the commentary behind various counter-arguments.
I’ve worked on a few projects that broke some of these rules, one in particular that sticks out is the storage of binary data as a BLOB. The database had grown to nearly 7GB in size, the majority accounted for by the storage of user photos as BLOBs within the database. It made working with the system really cumbersome and naturally over the course of the project the database needed to be moved to a new host which brought it’s own set of hurdles.