There are distinct objectives you must achieve in order to design a good, sound database structure. You can avoid many of the problems mentioned in the previous section if you keep these objectives in mind and constantly focus on them while you're designing your database.
The database supports both required and ad hoc information retrieval. The database must store the data necessary to support information requirements defined during the design process and any possible ad hoc queries that may be posed by a user.
The tables are constructed properly and efficiently. Each table in the database represents a single subject, is composed of relatively distinct fields, keeps redundant data to an absolute minimum, and is identified throughout the database by a field with unique values.
Data integrity is imposed at the field, table, and relationship levels. These levels of integrity help guarantee that the data structures and their values will be valid and accurate at all times.
The database supports business rules relevant to the organization. The data must provide valid and accurate information that is always meaningful to the business.
The database lends itself to future growth. The database structure should be easy to modify or expand as the information requirements of the business change and grow.
You might find it difficult at times to fulfill these objectives, but you'll certainly be pleased with your final database structure once you've met them.