Use Small Values

Improve performance by using the smallest values for data that application requirements will permit.

Store Binary Data Externally

Rather than storing binary large object data (i.e., BLOB) in database tables, keeping a reference to external data will improve performance and simplify access to that data.

Normalize Data

Data normalization is a core principle of relational databases wherein data is organized to minimize or eliminate redundancy.

Use Primary Keys

Use of primary keys is required for proper normalization and ensures that each row of data is unique. While debate exists between sourcing keys from meaningless data (i.e., surrogate keys) or from meaningful data (i.e., natural keys), keys should be unchanging over time and therefore should not be constructed from transient data such as names or contact information.

Use Views

Utilize views to hide complexity, provide aggregate data, and restrict access to rows and columns.

Consider Using Stored Procedures for Data Access

Use of stored procedures provides additional security through isolation of data and deters SQL injection via assignment to variables. Stored procedures for data access is congruent with the layered approach to data access and may provide additional performance benefits due to the precompilation of code.

Use Indices

By maintaining a sorted sequence of keys that point to the associated record, indices provide significant performance increases. Try to use short, unique keys to most improve efficiency.

Use Effective Names

Good naming conventions promote maintainability and reduce opportunities for error.

Make Names Meaningful

Names should be descriptive. Avoid abbreviations and obscure acronyms that will obfuscate meaning or make correct utilization difficult to remember.

Do Not Use Numbers or Spaces

Numbered tables and columns are an indicator of poor normalization while spaces (and many other non-alphanumeric characters) create ambiguity for the parser.

Be Consistent

Adopt a consistent, memorable set of naming conventions across the entire database.

Use Scripts to Update the Schema

This will allow changes to be readily deployed to production.