• The most basic thing is to make sure you really understand the real-world entities that you are trying to model, and to make the tables as close as possible to what they represent.

    When user calls something an “Order”, are they talking about something a customer ordered, a shipment, or something else? It may depend on which part of an organization you talk to.

    Nothing is worse than realizing that the table you designed actually represents many conflicting real-world entities.