It is worthwhile to sum up in a single place all the major issues in designing Oracle database applications—thus “The Commandments” (or perhaps “The Suggestions”). Their presentation does not assume that you need to be told what to do, but rather that you are capable of making rational judgments and can benefit from the experience of others facing the same challenges. The purpose here is not to describe the development cycle, which you probably understand better than you want to, but rather to bias that development with an orientation that will radically change how the application will look, feel, and be used. Careful attention to these ideas can dramatically improve the productivity and happiness of an application’s users.
The ten commandments of humane database application design:
- Include users. Put them on the project team and teach them the relational model and SQL.
- Name tables, columns, keys, and data jointly with the users. Develop an application thesaurus to ensure name consistency.
- Use English words that are meaningful, memorable, descriptive, short, and singular. Use underscores consistently or not at all.
- Don’t mix levels in naming.
- Avoid codes and abbreviations.
- Use meaningful keys where possible.
- Decompose overloaded keys.
- Analyze and design from the tasks, not just the data. Remember that normalization is not design.
- Move tasks from users to the machine. It is profitable to spend cycles and storage to gain ease of use.
- Don’t be seduced by development speed. Take time and care in analyses, design, testing, and tuning.
If you have a poor design, your application will suffer no matter what commands you use. Plan for functionality, plan for performance, plan for recoverability, plan for security, and plan for availability. Plan for success.