Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Model_Konceptualny - Dziennik
Forum PHP.pl > Forum > Bazy danych
3squad
Witam, chciałbym skorzystać z Waszych porad i dowiedzieć się jak najlepiej stworzyć model konceptualny (no a oczywiście potem całą bazę)

Korzystam z Power Designera


Chcę stworzyć model bazy danych obsługującej popularny ostatnio w szkołach średnich i gimnazjach dziennik elektroniczny

Mam problem z połączeniem encji:

Uczeń (IdU, ..., ..., ... )
Nauczyciel (IdN, ..., ..., ... )
Ocena(IdO, ..., ..., ... )
Przedmiot(IdP, ..., ..., ... )
Frekwencja(IdF, ..., ..., ... )
Uwaga(IdUw, ..., ..., ... )

Tak by działało to funkcjonalnie, tzn tak by np. Nauczyciel wstawia ocenę (Danego dnia na danej lekcji danemu uczniowi)

I teraz zastanawiam się jak to wszystko razem do kupy zebrać?
Zastanawiałem się nad dodatkową encją Lekcja która by przyjmowała atrybuty daty i by je wszystkie jakoś łączyła, czy może lepiej jakieś połączenie asocjacyjne zastosować?

Tutaj jeszcze taka uwaga: Na razie żadna z powyższych encji nie posiada pola data, a jest to kluczowa informacja od której powinno (chyba) wszystko zależeć w dzienniku?

Pierwszy raz zajmuję się takim czymś więc nie mam dużego doświadczenia, proszę o jakieś wskazówki.

Z góry dziękuję za pomoc
Pozdrawiam
thek
Pomyślmy... Uczeń i Nauczyciel to w sumie dwie różne wariantywne odmiany klasy Osoba. Tutaj można by utworzyć klasę abstrakcyjną, od której wywodzą się oba wspomniane typy. Ogólnie zacząłbym od spojrzenia na sam dziennik w wersji papierowej i to jak jest "obsługiwany". Skoro już nam się rozjaśniła sprawa osób (nauczyciel i uczeń) to lećmy dalej... Następne są przedmioty. Do każdego powinien być przypisany nauczyciel, ale należy uważać, bo do jednego może być przypisany teoretycznie więcej niż jeden nauczyciel gdy klasa ma zajęcia "dzielone". Ja miałem przykładowo tak, że klasa była podzielona na grupy pod kątem zaawansowania. W tym samym czasie jedni mieli angielski zaawansowany, zaś inni niemiecki zaawansowany. Dlatego też trzeba to uwzględnić w przedmiotach. Nie może istnieć tylko przedmiot, ale i jego stopień zaawansowania. Stopień zaawansowania danego przedmiotu powinien być uchwycony przy danym Uczniu. To pozwoli powiązać go w "planie zajęć". Frekwencja jest sprawdzana tak naprawdę poprzez negację. Jeśli uczeń jest, nie ma nic wpisywanego. Jeśli go nie ma lub się spóźnił, jest adnotacja. Tyczy ona tego jaka godzina lekcyjna, jakiego dnia. Nie ma dokładnej sekundowej. Stąd najlepiej sobie zbudować "siatkę". W ten sposób możemy zrobić "plan zajęć", który łatwo oznaczy na jakiej godzinie danego dnia tygodnia jest jaki przedmiot. Ocena jest przypisywana dla danego przedmiotu, danemu uczniowi na danej godzinie lekcyjnej, można określić tutaj datę i typ oceny, ponieważ te mają różną wagę. Inaczej liczy się ocena ze sprawdzianu, inaczej kartkówki, a inaczej odpowiedź ustna. Pamiętaj też, że uczniowie są zgrupowani w klasy lub grupy (właśnie przy różnym zaawansowaniu). Tu uderza też Uwaga. Może tyczyć konkretnej osoby lub całej klasy bądź grupy. U mnie Uwagi w dzienniku tyczyły tylko tych dwóch ostatnich. Nie powiem, była to zawsze ciekawa lektura, a każda lekcja wychowawcza zaczynała się od słów "Co to znowu było na...", ale to tylko tak jako dygresja biggrin.gif

Myślę, że tkie nakreślenie coś CI podpowie.
3squad
Dzięki za podpowiedzi, wykorzystałem szczególnie tą z wieloma nauczycielami na klasę (podział na grupy).
Osoba jako encja abstrakcyjna z której dziedziczą inni oczywiście była już przeze mnie wykorzystana.
Czekam na jeszcze więcej smile.gif

A mam pytanko też odnośnie tego co później będzie można z tej bazy wyciągnąć (bo wiadomo proste zapytania typu sprawdź ocenę danego ucznia, kiedy, policz średnią), a co od siebie dodali byście, tak by wykorzystać maksymalnie możliwości takiej bazy, jakieś zaawansowane funkcje?

Z góry dzięki za podpowiedzi, każda będzie dla mnie cenna,
Pozdrawiam
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.