• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

projektowanie bazy danych MySQl dziennik internetowy zarządzanie szkołą

VPS Starter Arubacloud
0 głosów
2,392 wizyt
pytanie zadane 4 sierpnia 2018 w C i C++ przez Konrad84 Nowicjusz (120 p.)

Cześć.
Potrzebuję pomocy przy projekcie bazy danych.
Projekt jest niekomercyjny. Będzie to moja praca inżynierska.
Będę wdzięczny za wszystkie rady i wskazówki.

Co chciałbym osiągnąć:(oczywiście nie wszystko jeśli coś będzie bardzo kłopotliwe do wykonania mogę zrezygnować)
-funkcję tradycyjnego dziennika (oceny, frekwencja, uwagi itp)
-dostęp do planu zajęć dla danej grupy z uwzględnieniem sprawdzianów i testów w prowadzonych wcześniej przez nauczyciela

Różne dostępy dla ucznia, rodzica, nauczyciela, wychowawcę, dyrektora.
Uczeń:
-dostęp do własnych ocen frekwencji uwag
-dostęp do planu

Rodzic
-to wszystko co uczeń
-możliwość wymiany informacji z nauczycielem(wiadomości)

Nauczyciel
-wprowadzenie ocen z prowadzonego przemiotu
-ustalanie wag ocen
-wprowadzenie uwag
-wymiana informacji z rodzicami
-generowanie listy ocen z prowadzonego przemiotu
-generowanie frekwencji z danego przemiotu
-dostęp do danych kontaktowych ucznia i rodzica

Wychowawca
-wszystko co nauczyciel (jako nauczyciel z przedmiotu lekcja wychowawcza)
-generowanie ogólnej frekwencji dla danego ucznia
-generowanie listy ocen dla danego ucznia
-możłiwość edycji danych kontaktowych uczniów

Dyrektor
-statystyki ocen i frekwencji dla (szkoły, uczniów, klas, przedmiotów)
-dodawanie usuwanie uczniów

Zależy mi na porządnym projekcie bazy danych aby uniknąć problemów na dalszych etapach pracy.
Na dole strony przedstawiam schemat EER (jest to powiedzmy punkt wyjścia)
Mam totalny mętlik w głowie jak powinna wyglądać taka baza danych.
Proszę o ocenę mojego schematu i wszelkie sugestie co powinienem pozmieniać co robi się inaczej itp.
Konkretne pytanie; Czy relacje mogę tworzyć tak aby na schemacie układały się w zamknięte "koła" czy jest to redundancja danych np czy jeśli na moim schemacie dodam relację między tabelą group a grade będzie to błąd?

Dodam jeszcze żę projekt będę pisał w Javie z użyciem springa. Front end zrobię z użyciem thymeleaf.

Pozdrawiam i z góry dziękuję za pomoc.

 

1 odpowiedź

0 głosów
odpowiedź 5 sierpnia 2018 przez Ehlert Ekspert (212,630 p.)
  1. Pierwszy byk jaki mi się rzucił w oczy to data Varchar. Dlaczego? 
  2. Hibernate udostępnia mnóstwo sposobów na mapowanie do obiektów. Z tego co mi wiadomo buduje też schemat na podstawie encji. Powinieneś zacząć więc raczej od diagramy UML klas z jakich będziesz korzystać. 
  3. Do tych wszystkich osób przydałaby się jedna tabela z discriminatorem. Przy dużych rozbieżnościach danych używasz typu JOIN.
  4. Chyba nie ma tabeli role. 
  5. Ocena w takim systemie to dla mnie encja łącząca dane: uczeń, nauczyciel, test ocena i typ. Można to oczywiście rozbudować ale tego mi brakuje.
  6. Relacja tych wielu tabel łączy się ze szkołą w jednym i to niezbyt dobrym miejscu.
  7. Wywaliłbym enumy i zrobił relacje do mniejszych tabel. 
  8. Taki dziennik to poważny problem. Trzymanie od tak sobie dat może nie mieć dobrych skutków na przyszłość. Na Twoim miejscu pomyślałbym o tabeli z id, godzina początku lekcji, godzina końca lekcji. I takie encje łączył z lekcjami w konkretnych dniach. Jesteś dzięki temu zabezpieczony na wypadek gdyby ME wpadło na pomysł 35 minutowej lekcji wink​​​​​​

Schemat bazy jakiś tam masz, ujdzie. Ale jeśli teraz podepniesz go pod jakikolwiek framework z ORMem to powstanie ogromna porcja spagetti kodu. 

komentarz 5 sierpnia 2018 przez Konrad84 Nowicjusz (120 p.)
Dzięki za podpowiedź.

Postaram się uwzględnić wszystkie sugestie i wtedy pokaże jak to wygląda.

Najpierw muszę sporo doczytać. Nie miałem pojęcia o czymś takim jak UML czy tablica role(na pewno to wykorzystam).

Dyskryminatora powinienem użyć dla : rodzica, studenta i nauczyciela czy tylko dla studenta i rodzica?

Nie sądziłem że zaprojektowanie bazy danych jest takie trudne( chyba dlatego że nie mam o tym zbyt dużego pojęcia).

Jeszcze raz dzięki za pomoc.

Podobne pytania

0 głosów
1 odpowiedź 124 wizyt
0 głosów
0 odpowiedzi 856 wizyt
pytanie zadane 25 listopada 2018 w SQL, bazy danych przez kamanik Nowicjusz (240 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...