13

我正在爲學校管理系統創建系統,並拿出附加的數據庫模式。學校管理系統的數據庫規範化

Database diagram http://oi40.tinypic.com/15x21ig.jpg

以下是該系統的工作原理:

  1. 一個學校有很多學生和教師。它也有許多課程(科目)教。一個年級可以分配許多課程。這些課程將被分配給該特定年級的學生。
  2. 學生的水平分爲不同的等級和部分。一個學生可以在五年級,但是如果五年級的學生數量巨大,他們會被分成幾部分。例如:5年級A部分,5年級B部分。
  3. 學生被放置在獨特的教室。教室將始終是獨一無二的。 2010年的五年級課堂將與2011年的五年級A課堂不同。
  4. 學生被分配給家長。一位家長可以在學校有一個以上的學生。
  5. 可以將一個或多個教室分配給教師。
  6. 學生的出勤由老師每天帶走
  7. 考試有多種類型。考試結果存儲爲每個科目(課程)。

我是數據庫規範化的初學者,如果有人能給我一些提示,如果數據庫看起來沒問題,我會很高興。

編輯:

此外,將只有一個登錄點。在上面的情況下,在登錄期間,用戶將不得不從下拉列表中選擇用戶的類型。該下拉選擇將用於查詢各個表以登錄到系統。另一種替代方法是使用通用user表,該表將存儲user_id, email, password, last_login_date, last_login_ip,但將在各個表中存儲其他詳細信息,如student, parent, teacher。那麼,實施它的首選/正確方法是什麼?

+3

嗨,你學校的學生只能有一位家長嗎?奇怪:)另外,爲什麼教室只有一名教師?不應該被分配到課程? – Tadeck

+0

@Tadeck父表存儲授權家長的詳細信息,他們將能夠查看和檢查學生記錄。它不表示學生的所有父母細節。例如:父親可以發出父母用戶名/密碼來檢查他的學生。母親也可以使用它,但通常只有一個人能夠做到這一點。對於課堂,一個教室只有一個指定的班主任,他們填寫該班學生的出勤率/成績。課程是指學科學生學習。成績將被分配科目和教室將被分配成績。 – WebNovice

+3

@Damchey準備好像1-authorized-parent規則那樣的事情可能會改變,並且您的應用程序需要以某種方式處理它。這可能是一個好主意,這樣設計這樣一個學生可以擁有任意數量的授權監護人 - 然後,您可以在登錄時將用戶界面級別 –

回答

5

你根本沒有建立GRADE_SECTIONS模型。

除非你的學校在每個暑假都有一個大規模的拆遷和施工程序,教室也是一樣的。 作業每年都在變化。因此,課堂應分配給單獨的GRADE_SECTION實體,而不是像現在這樣合併SECTIONS和CLASSROOMS。

應將學生分配到GRADE_SECTIONS而不是CLASSROOMS。

課程應該有很多的EXAMS而不是許多EXAM_RESULTS。學習數學和俄語的學生可以參加法語考試根本沒​​有意義。