As with anything, the answer here is, "It Depends."
Databases can be used to do different things, and some of those things will require opposing directions in design and development.
An OLTP database system will be designed entirely differently from one used as a reporting or warehousing solution. The first is often normalized, and a warehouse is often de-normalized. This helps the system get the desired performance for its intended behavior.
Even within a segment of this, depending on if the usage will be read-heavy or write-heavy, different design decisions might be appropriate.
The best bet is to look into best practices for a much smaller segment of database development that corresponds to the type of application you're trying to build.