Tworzę system szkolnego systemu zarządzania i opracowuję załączony schemat bazy danych.Normalizacja baz danych dla systemu zarządzania szkołą
Database diagram http://oi40.tinypic.com/15x21ig.jpg
obserwuję to, jak działa system:
- Szkoła ma wielu uczniów i nauczycieli. Ma również wiele kursów (przedmiotów) nauczanych. Na poziomie klasy można przypisać wiele kursów. Te kursy z kolei zostaną przydzielone studentom w danej klasie.
- Poziomy uczniów są podzielone na oceny i sekcje. Student może być na poziomie 5, ale jeśli uczniowie klasy 5 są liczni, są podzieleni na sekcje. np .: klasa 5 sekcja A, klasa 5 sekcja B.
- Uczniowie są umieszczani w unikalnych salach lekcyjnych. Klasa będzie wyjątkowa w całym tekście. Klasa 5 klasy A z roku 2010 będzie inna niż klasa 5 klasy A z roku 2011.
- Uczniowie są przydzielani do rodziców. Rodzic może mieć więcej niż jednego ucznia w szkole.
- Do nauczyciela można przypisać jedną lub więcej sal lekcyjnych.
- Frekwencja dla uczniów jest podejmowana przez ich nauczyciela na co dzień
- Będzie wiele rodzajów egzaminów. Wyniki egzaminu są zapisywane dla każdego przedmiotu (kursu).
Jestem początkującym w normalizowaniu bazy danych i byłbym zadowolony, gdyby ktoś mógł dać mi wskazówki, czy baza danych wygląda dobrze czy nie.
EDIT:
Ponadto, nie będzie tylko jeden punkt logowania. W powyższym przypadku podczas logowania użytkownik będzie musiał wybrać typ użytkownika z rozwijanej listy. Ta lista rozwijana zostanie wykorzystana do wysłania zapytania do odpowiedniej tabeli w celu zalogowania się do systemu. Inną alternatywą jest użycie wspólnej tabeli user
, która będzie przechowywać user_id, email, password, last_login_date, last_login_ip
, ale będzie przechowywać inne szczegóły w odpowiednich tabelach, takich jak student, parent, teacher
. Jaki jest preferowany/poprawny sposób wdrożenia?
Hej, uczniowie w twojej szkole mogą mieć tylko jednego rodzica? Raczej dziwnie :) Plus, dlaczego klasie przypisano tylko jednego nauczyciela? Czy nie powinien być przypisany do kursu? – Tadeck
@Tadeck Tabela nadrzędna przechowuje dane autoryzowanego rodzica, który będzie mógł przeglądać i sprawdzać zapisy uczniów. Nie wskazuje wszystkich danych rodziców ucznia. Np .: Ojciec może otrzymać rodzicielską nazwę użytkownika/hasło, aby sprawdzić swojego ucznia. Matka też mogłaby z niego korzystać, ale generalnie tylko jeden byłby w stanie to zrobić.Jeśli chodzi o klasę, w klasie będzie tylko JEDEN przydzielony nauczyciel klasy, który wypełnia frekwencję/stopnie uczniów w danej klasie. Kurs odnosi się do przedmiotów, które student studiuje. Oceny zostaną przypisane do przedmiotów i do klas zostaną przypisane oceny. – WebNovice
@Damchey bądź przygotowany, że rzeczy takie jak reguła 1-autoryzowanego-nadrzędnego mogą się zmienić, a twoja aplikacja będzie musiała jakoś sobie z tym poradzić. Dobrym pomysłem może być zaprojektowanie tego, aby student mógł mieć dowolną liczbę autoryzowanych opiekunów - możesz wtedy ograniczyć liczbę do 1 na poziomie interfejsu użytkownika –