Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Dziennik lekcyjny, projekt bazy danych?
Forum PHP.pl > Forum > Przedszkole
marcim
Witam!
Podjąłem się napisania w php internetowego dziennika przedmiotowego. Na początek zacząlem od rozplanowania bazy danych. Jako że moje doświadczenie jest niewielkie pytam was, czy takie coś bedzie odpowiednie:
  1. Klasy:
  2. id klasy, klasa
  3. Users:
  4. Id, imie, nazwisko, hasło, email,level[0=uczen, 1=nauczyciel]
  5. Klasa_uczniowie
  6. nrWDznienniku, idUcznia
  7. Klasa_oceny
  8. idUcznia, id sprawdzianu, ocena
  9. klasa_sprawdziany
  10. id sprawdzianu, dzial

I ma to wyglądać tak, przykładowo stworzona klasa:
[Klasy:]
1, IB
2, IID
3. IIF
[Uczniowie]
1, Jan, Kowalski, t2bnty8103kjbckju2,jan@gmail.com
.
.
.
50. Maciek, Iksiński, 9023hufvbhj89234jc, email@o2.pl
[IID_uczniowie]
1.2
2.6
3.7
.
.
.
30,41
[IID_oceny]
2,3,1
6,4,1
7,2,1
.
.
.
30,5,1
[IID_sprawdziany]
1.Geografia Polski
2.Obliczanie czasu
3.Test Kompetencji
I jak taki system by się prezentował? Potem z poziomu PHP przenoszenie rocznika, czyli uczniowie ID przechodzą do IID, IID do IIID, dodawanie uczniów, usówanie uczniów, dodawanie ocen, usówanie ocen, poprawki itp. Czy byłoby to wydajne, czy jakaś prostsza koncepcja bazy danych?
Pozdrawiam
Natalka
Uczniowie

Id, imie, nazwisko, hasło, email,level,klasa, nr w dzienniku

Sprawdziany
Id, dział

Oceny
Id_ucznia, Id_sprawdzianu, Ocena



Wytłumaczenie: Klasy i numer w dzienniku są stałe i się nie zmieniają, uczeń może mieć tylko 1 numer w dzienniku i należeć do tylko jednej klasy więc nie potrzebne są dodatkowe kolumny w bazie.


Aby pobrać uczniów z klasy wszystko robisz selectem.
Zyx
Pierwsze rzucające się niedopatrzenie to brak powiązania ucznia z klasą. Ponieważ też swego czasu pisałem taką aplikację, podsunę Ci kilka zastosowanych przeze mnie rozwiązań:

1. Rozdzielenie uczniów i nauczycieli. Chociaż i jednych, i drugich obejmuje logowanie, to jednak pełnią oni w systemie tak odmienne role i charakteryzują się tak odmiennymi parametrami, że moim zdaniem lepiej jest ich trzymać osobno. U mnie za login ucznia służył PESEL, nauczyciele mieli tradycyjne loginy.
2. Przy klasie sporym ułatwieniem funkcjonalnym jest pamiętanie okresu, w jakim klasa będzie istnieć. Numery zmieniają się co roku, lecz klasa jako całość istnieje kilka lat. Bez sensu jest przepisywać wszystkie dane na nowo z każdym nowym rokiem szkolnym tylko dlatego, że nie można zapamiętać, że np. 2A istnieje w okresie od 2008 do 2011 roku, więc wystarczy ją przenumerować na 3A.
3. Jak rozwiążesz problem przydziału nauczycieli do przedmiotów w klasach?
Spirit86
nie podoba mi się 'level' - każdy nauczyciel będzie miał dostęp do wpisania ocen ze wszystkich przedmiotów? Mało tego będzie mógł przeglądać też wszystkie oceny ucznia ze wszystkich przedmiotów? Co do automatycznej zmiany to bym wpisał prędzej rocznik i względem niego obliczał, tylko co jeśli ktoś udupi rok?
marcim
Wyraziłem się mało precyzyjnie, to strona tylko dla jednego konkretnego nauczyciela i jednego przedmiotu. Tylko on z tego będzie korzystał. Więc nie wiem czy byłby sens rozgraniczać logowania na uczeń/nauczyciel. Dobrym pomysłem jest rocznik, i wtedy w zależnośći od roku nauki przepisywanie numetku klasy. Tych co nie zdali, nauczyciel będzie musiał sam usunąć, ew. dodać

Natalka, a co jeśli klasy bedą miały oddzielne sprawdziany, lub w innej kolejności?
Spirit86
ja bym dodał jeszcze pole data do sprawdzianu (ew semestr, żeby później ułatwić ew. sortowanie). Moim zdaniem nie ma sensu kasować starych danych, ale gromadzić je w archiwum, nauczyciel miałby dostęp do progresu jaki miał uczeń na przestrzeni lat, jaką wystawić mu np ocenę na koniec szkoły, bo ona jest najważniejsza, więc na jej wpływ powinien mieć wpływ całokształt lat smile.gif

pozdro
marcim
Z semestrem też dobry pomysł, napewno go wykorzystam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.