我正在爲學校管理系統創建系統,並拿出附加的數據庫模式。學校管理系統的數據庫規範化
Database diagram http://oi40.tinypic.com/15x21ig.jpg
以下是該系統的工作原理:
- 一個學校有很多學生和教師。它也有許多課程(科目)教。一個年級可以分配許多課程。這些課程將被分配給該特定年級的學生。
- 學生的水平分爲不同的等級和部分。一個學生可以在五年級,但是如果五年級的學生數量巨大,他們會被分成幾部分。例如:5年級A部分,5年級B部分。
- 學生被放置在獨特的教室。教室將始終是獨一無二的。 2010年的五年級課堂將與2011年的五年級A課堂不同。
- 學生被分配給家長。一位家長可以在學校有一個以上的學生。
- 可以將一個或多個教室分配給教師。
- 學生的出勤由老師每天帶走
- 考試有多種類型。考試結果存儲爲每個科目(課程)。
我是數據庫規範化的初學者,如果有人能給我一些提示,如果數據庫看起來沒問題,我會很高興。
編輯:
此外,將只有一個登錄點。在上面的情況下,在登錄期間,用戶將不得不從下拉列表中選擇用戶的類型。該下拉選擇將用於查詢各個表以登錄到系統。另一種替代方法是使用通用user
表,該表將存儲user_id, email, password, last_login_date, last_login_ip
,但將在各個表中存儲其他詳細信息,如student, parent, teacher
。那麼,實施它的首選/正確方法是什麼?
嗨,你學校的學生只能有一位家長嗎?奇怪:)另外,爲什麼教室只有一名教師?不應該被分配到課程? – Tadeck
@Tadeck父表存儲授權家長的詳細信息,他們將能夠查看和檢查學生記錄。它不表示學生的所有父母細節。例如:父親可以發出父母用戶名/密碼來檢查他的學生。母親也可以使用它,但通常只有一個人能夠做到這一點。對於課堂,一個教室只有一個指定的班主任,他們填寫該班學生的出勤率/成績。課程是指學科學生學習。成績將被分配科目和教室將被分配成績。 – WebNovice
@Damchey準備好像1-authorized-parent規則那樣的事情可能會改變,並且您的應用程序需要以某種方式處理它。這可能是一個好主意,這樣設計這樣一個學生可以擁有任意數量的授權監護人 - 然後,您可以在登錄時將用戶界面級別 –