Good Database Design
It is most likely that as a web developer, you will
be working with one of the modern relational databases and that you
will be able to work in conjunction with an existing
That is, this tutorial is limited to the "use" of databases
rather than to the
creation and administration of them. In fact, the creation
and administration of
databases is a topic well beyond the scope of this tutorial and probably
well beyond the scope of your job. After all, database
administration is its
own entire job description.
However, we have been spending a lot of time going
through general database theory because although you may
not be designing
databases yourself, in order to take the most advantage of them, it
is important that you understand how they work.
Likewise, it is important
that you have a feel for good database design. After all, a database's
usefulness is directly proportional to the sleekness
and efficiency of its
design. And your ability to take advantage of a database is directly
proportional to your ability to decipher and internalize that design.
When thinking about good database design,
it is important that you keep data retrieval, storage and
modification efficiency in mind. It will pay off
one thousand fold if you take a week or two to simply play with
different arrangements of data. You will find that certain table
structures will provide easier and more intuitive access
Tables should describe only one subject, have
distinct fields, contain no redundant data, and have a field with
unique values so that the table can be related to others.
You should also keep in mind future expansion of
the database and make sure that your design is easily extensible.
Typically, you will go through a requirements
phase in which you should simply sit with the problem, interview
users, and achieve an intuition about the data and the project.
Next, you should spend time modeling the data,
preferably using some standard methodology like ER Diagramming.
However, even if you do not model in any traditional way, you
can still play with different ideas and think about the pros and
Finally, you should try out your ideas and hone them
through limited trials.
Hopefully, you will also choose a database with full-
functionality such as security and concurrency control (making
sure that two users cannot simultaneously change a record).
There are many excellent choices available in the market today from
freeware to commercial products.
Of course, as we said above, you will
probably be coming onto a project with an already existing
database. This is the case for most web developers. In this
case, you should work closely with the database administrator to
define the database.
At the very least you should sit down
over a brew one evening and discuss the database design