Database Design Practices

This document lists guidelines for designing database schema. Major key concerns to be kept in mind are:

These might have side-effects on each other, for example, avoiding usage of functions and stored procedures increases portability but restricts performance. The DB Designer must make the best of all possible choices to make a very reliable and robust database for an application.

Design for Performance

The database schema should be designed to perform the best. The turnaround time for queries should be minimum. Few steps that we could take in improving the database performance are:

Design for Portability

The database schema should be portable. There are numerous database vendors in the market. At some point in time we might require to migrate the data to a different database platform. The schema should be designed in such a way that the migration would not become a pain at any time in the future if necessary. Few steps that we could take are:

Design for Data Integrity

Data integrity is an important aspect that database designers ponder over.

Design for Readability

The database schema should document itself. We have to provide appropriate nomenclatures for the entities so that they convey what the represent through their names. Some naming conventions are: