A Bad Database Design for Linguist

The diagram below shows what LINGUIST List data would look like when crammed into one table. Note the massive duplication of data values in certain fields, such as ed_name. Bear in mind that the table would contain tens of thousands of records, one for each message. The data redundancy is unacceptable, both in terms of space consumption and ease of maintenance.

Note also that the rigidity of this design imposes a limitation on the number of linguistic fields that can be attached to a message, and also allocates fields that will be unused ("null") in most messages.


LINGUIST List Messages
vol# issue# issue_date topic issue_subj msg# ed_name ed_email ed_webpg ed_affil auth_name auth_email msg_subj msg_date msg_body lingfld1 lingfld2 lingfld3 lingfld4
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...