今日は、Django ベースの学校管理プログラムを作成する小さなプロジェクトを開始します。私は現在、モデルとそれに対応する関係を設計しています。Django とリレーショナル データベース全般についてはかなり新しいので、意見をお願いします。
現在のモデル レイアウトをお見せする前に、プログラムの目的を理解しておく必要があります。ソフトウェアを個々の学校と学校システム全体の両方で使用できるようにすることが私の目標であることを覚えておいてください。
機能: - 複数の学校を作成します - 学校
ごとの生徒数を追跡します -
生徒の人口統計、保護者の連絡先情報などを追跡します - 成績表 - 成績証明
書
-
懲戒記録を追跡します。
- 料金スケジュールと支払いの追跡
- レポートの生成 (学生の活動、学生の成績証明書、クラスの進捗状況、人口統計別の進捗状況、支払いレポート、学生クラスおよび人口統計別の懲戒レポート)
-- 学生レポート用の自動化された PDF レポートの電子メールを保護者に送信します。
これらの機能要件を考慮して、私が現在持っているモデル レイアウトは次のとおりです。
* Person
o ID: char or int
o FirstName: char
o MiddleName: char
o FamilyName: char
o Sex: multiple choice
o Ethnicity: multiple choice
o BirthDate: date
o Email: char
o HomePhone: char
o WordPhone: char
o CellPhone: char
o Address: one-to-one with Location
* Student (inherent Person)
o Classes: one-to-many with Class
o Parents: one-to-many with Parent
o Account: one-to-one with PaymentSchedule
o Tasks: one-to-many with Tasks
o Diciplin: one-to-many with Discipline
* Parent (inherent Person)
o Children: one-to-many with Student
* Teacher (inherent Person)
o Classes: one-to-many with Class
* Location
o Address: char
o Address2: char
o Address3: char
o City: char
o StateProvince: char
o PostalCode: char
o Country: multiple choice
* Course
o Name: char
o Description: text field
o Grade: int
* Class
o School: one-to-one with School
o Course: one-to-one with Course
o Teacher: one-to-one with Teacher
o Students: one-to-many with Student
* School
o ID: char or int
o Name: char
o Location: one-to-one with location
* Tasks
o ID: auto increment
o Type: multiple choice (assignment, test, etc.)
o DateAssigned: date
o DateCompleted: date
o Score: real
o Weight: real
o Class: one-to-one with class
o Student: one-to-one with Student
* Discipline
o ID: auto-increment
o Discription: text-field
o Reaction: text-field
o Students: one-to-many with Student
* PaymentSchedule
o ID: auto-increment
o YearlyCost: real
o PaymentSchedule: multiple choice
o ScholarshipType: multiple choice, None if N/A
o ScholarshipAmount: real, 0 if N/A
o Transactions: one-to-many with Payments
* Payments
o auto-increment
o Amount: real
o Date: date
これをどのように改善できるかについてのアイデアがあれば、ぜひお寄せください。
アップデート
私は最初の models.py コードを書きましたが、これにはおそらく多くの愛が必要です。ご覧になりたい、またはプロジェクトに参加したい場合は、リンクをチェックしてください。
http://bazaar.launchpad.net/~djangoschools/djangoschools/trunk/files