czy mogli byscie mi to sprawdzic? Aha i nie mam pojecia jak zrobic nieobecnosci.
Uczeń ma tylko jednego opiekuna? Zazwyczaj jest dwójka rodziców i każdy najczęściej jest równoprawnym opiekunem.
Nie rozumiem opis_oceny. 5,4+,3- wymagają jeszcze opisu? Ewentualnie można trzymać także id nauczyciela przy ocenie. Jeśli jest zastępstwo, żeby było wiadomo kto jaką wystawił.
id_nauczyciela w klasa rozumiem że to wychowawca.
Przedmiot jest źle wymyślony.
Masz listę przedmiotów: matematyka, j. polski, chemia, ...
Konkretny nauczyciel przyporządkowany jest do nauki konkretnego przedmiotu w konkretnej klasie.
Przedmioty
Id
Nazwa
Nauczyciele
Id
Imię
Nazwisko
Nauczanie
IdNauczyciela
IdPrzedmiotu
IdKlasy
LiczbaGodzinWTygodniu
Nieobecności.
Dla każdej klasy powinieneś mieć plan lekcji, aby wiedzieć kiedy uczeń danej klasy powinien być w szkole. Uwzględniając że mogą być zajęcia nieobowiązkowe, np. religia.
Do tego przydałby się kalendarz roku szkolnego, aby wiedzieć w które dni powinny być lekcje, a w które nie. Uwzględniając opcję że czasem w jakiś dzień odrabiany jest inny i idzie się planem z innego dnia tygodnia.
Następnie wystarczy trzymać nieobecność tak: IdUcznia, GodzinaLekcyjna, Obecność (np. 1 był, 0, spóźnił się, -1 nie było). Ewentualnie jeśli spóźnień nie chcemy trzymać oraz obecności, a tylko nieobecności, to wystarczy pierwsze dwa pola trzymać, czyli uczeń i godzina lekcyjna.
Najlepiej umieść rodziców/opiekunów/nauczycieli do jednej tabeli.
Nie jestem do końca przekonany czy mieszanie nauczycieli z opiekunami to najlepszy pomysł. Równie dobrze można powiedzieć że uczeń to też osoba i generalnie na osoby można mieć jedną tabelę.
Nauczyciel to pracownik, a opiekun to petent/klient. Można rozważyć pomieszanie tego, ale pytanie czy duży zysk będzie z tego że jedna osoba może występować w roli zarówno nauczyciela jak i opiekuna, czy raczej będzie to niosło więcej problemów? Uważam że dla kogoś początkującego będzie stanowiło to spory kłopot na poziomie bazy i zapytań, jak i implementacji aplikacji.
massther napisał(a)
Nie jestem do końca przekonany czy mieszanie nauczycieli z opiekunami to najlepszy pomysł. Równie dobrze można powiedzieć że uczeń to też osoba i generalnie na osoby można mieć jedną tabelę.
Nauczyciel to pracownik, a opiekun to petent/klient. Można rozważyć pomieszanie tego, ale pytanie czy duży zysk będzie z tego że jedna osoba może występować w roli zarówno nauczyciela jak i opiekuna, czy raczej będzie to niosło więcej problemów? Uważam że dla kogoś początkującego będzie stanowiło to spory kłopot na poziomie bazy i zapytań, jak i implementacji aplikacji.
Wiesz wydaje mi się, że dla przejrzystości bazy danych mój pomysł jest ok. Chociażby tak:
OSOBY
O_ID
O_IMIE
O_NAZWISKO
O_PLEC
O_DATA_URODZENIA
O_MIEJSCE URODZENIA
O_PESEL
O_ADRES_ZAMELDOWANIA_KOD_POCZTOWY
O_ADRES_ZAMELDOWANIA_MIASTO
O_ADRES_ZAMELDOWANIA_ULICA_NAZWA
O_ADRES_ZAMELDOWANIA_ULICA_NR
O_ADRES_ZAMELDOWANIA_MIESZKANIE
O_ADRES_ZAMIESZKANIA_KOD_POCZTOWY
O_ADRES_ZAMIESZKANIA_MIASTO
O_ADRES_ZAMIESZKANIA_ULICA_NAZWA
O_ADRES_ZAMIESZKANIA_ULICA_NR
O_ADRES_ZAMIESZKANIA_MIESZKANIE
O_NAZWA_NR_DOKUMENTU_TOZSAMOSCI
O_ID_DOKUMENTU_TOZSAMOSCI
O_LEG_ID
O_NR_LEGITYMACJI_SZKOLNEJ
O_NR_TELEFONU_STAC
O_NR_TELEFONU_KOM
O_EMAIL
O_ID_STATUS_PRAWNY
O_ID_TYTUL_NAUKOWY
O_ID_FUNKCJA_OSOBY
Filus napisał(a)
Wiesz wydaje mi się, że dla przejrzystości bazy danych mój pomysł jest ok.
A mi się wydaje, że tak najogólniej rzecz biorąc, próbujesz rzeczy proste uczynić skomplikowanymi. Zarówno opiekunowie, jak i nauczyciele, to ludzie z krwi i kości, ale z punktu widzenia logiki systemu to zupełnie różne encje, nie mające ze sobą nic wspólnego. Natomiast wprowadza to sporo komplikacji, bo:
- Albo trzeba pilnować w każdym raporcie, na każdej liście, gdziekolwiek gdzie się pojawiają opiekunowie/nauczyciele, żeby pojawiały się tylko ci z właściwej grupy (domyślam się, że po O_ID_FUNKCJA_OSOBY),
- Albo trzeba stworzyć dwa widoki na tabeli z osobami: sami nauczyciele i sami opiekunowie.
Wydajnościowo też raczej nie zyskujemy, bo np. chcąc znaleźć nauczyciela X musimy przebrnąć przez tabelkę, w której jest również cała masa opiekunów. Poza tym Twój pomysł nie rozwiązuje zupełnie pewnego problemu (w praktyce mało istotnego, ale zawsze), który uzasadniałby trzymanie opiekunów i nauczycieli razem - jeżeli nauczyciel jest równocześnie opiekunem, to i tak musimy go wprowadzić dwa razy, bo jest tylko jedno pole O_ID_FUNKCJA_OSOBY. Żeby to rozwiązać, trzeba by było dodać nową tabelkę z funkcjami osoby.
Potrafię sobie wyobrazić sytuację, gdy jedna tabela miałaby sens. Np. gdybyśmy musieli zaimplementować jakąś wspólną politykę bezpieczeństwa danych osobowych, to w ten sposób byłoby wygodniej. Albo gdybysmy robili raporty, na których miały by być wszystkie osoby mające związek ze szkołą. Albo gdyby częsta była sytuacja, gdy opiekunowie są nauczycielami (z zastrzeżeniem z poprzedniego akapitu).
Ale tak ogólnie - nie polecam ;)