データベースの設計(その1)

その2はないかもしれませんが。。

リレーショナルデータベースではデータをテーブル形式(エクセルの表のようなもの)で管理します。そのためテーブル設計は重要になります。今回は時間割を例に、データベースのテーブル設計を考えます。

時間割テーブル

上記の時間割テーブルについて、列名はccode、cname、tname、dweek、tslotで、それぞれ科目コード(主キー)、科目名、担当教員名、曜日、時限です。
上記は8行分のデータしかありませんが、本来、授業は非常にたくさんあるため、行数は4桁にはなるのではないでしょうか。
担当教員が退職するなどのため、担当者が変わった場合、該当するすべての行を変更する必要があり、変更忘れが生じかねません。そのため、教員情報は別のテーブルで管理し、教員番号など、教員の識別コードによって担当を管理したほうが良い。

時間割テーブル
教員テーブル

実際には、複数教員でひとつの授業を担当することもあるため、担当テーブルを作り、時間割テーブルからtcode列を外に出したほうが良い。

時間割テーブル
教員テーブル
担当テーブル

担当テーブルに主担当か副担当かを区別するための列を加えれば、複数教員で担当する授業も管理できます。主キーはccodeとtcodeの2つの列により構成されます。

ただ、上記の説明より、もっと根本的な問題もあるため、次回はそれについて書きます。

この記事が気に入ったらサポートをしてみませんか?