私は学校の管理システム用のシステムを作成していて、添付のデータベーススキーマを考え出します。
システムの仕組みは次のとおりです。
私はデータベースの正規化の初心者であり、データベースが正常に見えるかどうかにかかわらず、誰かが私にいくつかのヒントを与えることができればうれしいです。
編集:
また、ログインのポイントは1つだけです。上記の場合、ユーザーはログイン時にドロップダウンリストからユーザーのタイプを選択する必要があります。そのドロップダウンの選択は、システムにログインするためにそれぞれのテーブルにクエリするために使用されます。もう1つの方法は、user_id, email, password, last_login_date, last_login_ip
を格納するがstudent, parent, teacher
などの他の詳細をそれぞれのテーブルに格納する共通のuser
テーブルを使用することです。それで、それを実装するための好ましい/正しい方法は何ですか?
GRADE_SECTIONSはまったくモデル化していません。
学校には、夏休みごとに解体と建設の大規模なプログラムがない限り、教室は同じです。毎年変化するのはassignmentsです。したがって、現在のようにSECTIONSとCLASSROOMSをマージするのではなく、CLASSROOMSを別のGRADE_SECTIONエンティティに割り当てる必要があります。
生徒はCLASSROOMSではなくGRADE_SECTIONSに割り当てられる必要があります。
COURSESには、多数のEXAM_RESULTSではなく多数のEXAMSが必要です。数学とロシア語を学ぶ学生がフランスの試験を受けることができるのは、意味がありません。