Łukasz

Łukasz Adamczewski Programista Symfony
/ Zend

Temat: Baza danych Dziennik Szkolny

Witam wszystkie światłe umysły tego forum, problem a raczej dyskusja jaką chciałby poruszyć to kwestia zaprojektowania bazy danych pod system elektronicznego dziennika. O ile takie kwestie jak logowanie, profile osobowe itd. pominę, chciałbym się skupić na meritum czyli projektowaniu systemu oceniania.

Wymyśliłem następujące zależności

class_definition - klasa ogólnie - czyli klasa o profilu np. mat - fiz, ma ona kolumnę rok nauki, kolumnę będącą referencją do tabeli specjalizacji,

class_instance - klasa specyficznie - czyli stworzenie klasy mat - fiz np w roku 2010/11 z konkretnym wychowawcą i referencją do class_definition.

oczywiście standardowo relacja wiele do wielu class_instance <-> uczeń, aby modelować przynalezność ucznia do klasy w danym roku.

course - czyli prototyp przedmiotu (i tu zaczynają się niuanse), postanowiłem że w ramach danego profilu klasy ogólnie (class_definition), umieszczę tu referencje do class_definition, chociaż zastanawiam się nad relacją czy 1 do wielu czy wiele do wielu, ale raczej wiele do wielu, oraz czy przedmioty określone powinny być w ramach definicji klasy czy jej konkretnej instancji czyli czy dać referencje do class_definition czy class_instance

relacja wiele do wielu course <-> nauczyciel, bez komentarza

event - czyli wydarzenia związane w danym przedmiocie - kartkówka, sprawdzian algebra, sprawdzian funkcja kwadratowa, sprawdzań Mickiewicz

tabela grade - i tu mam największą wątpliwość, najbardziej pasuje mi zrobić relacje z event i z profilem ucznia, ale zastanawiam się czy później w trakcie programowania konieczność joinowania na każdym kroku z course np by pogrupować po przedmiotach czy coś w ten deseń nie byłaby warta wstawienia dodatkowej kolumny course_id, z drugiej strony mamy nadmiarowość bo event też przechowuje tą informację.

oczywiście chce zrobić ocenianie w miarę elastyczne więc robię dodatkową tabelę grade_value w której opisuje jaki symbol oznacza jaką wartośc - przydatne np. dla przykładowej podstawówki 1-3 gdzie jest ocenianie jakimiś buźkami albo innymi sposobami.

ps. projekt który robie jest, a raczej ma być możliwie uniwersalny ponieważ jest jednym z elementów mojej pracy inżynierskiej.Łukasz Adamczewski edytował(a) ten post dnia 23.11.10 o godzinie 21:00
23.11.2010, 20:59

Temat: Baza danych Dziennik Szkolny

class_instance - klasa specyficznie - czyli stworzenie klasy mat - fiz np w roku 2010/11 z konkretnym wychowawcą i referencją do class_definition.

oczywiście standardowo relacja wiele do wielu class_instance <-> uczeń, aby modelować przynalezność ucznia do klasy w danym roku.

Tu bym sie nie zgodzil - w jednej klasie moze byc wielu uczniow, ale kazdy uczen moze nalezec do jednej klasy, wiec bardziej tu pasuje relacja 1..n

course - czyli prototyp przedmiotu (i tu zaczynają się niuanse), postanowiłem że w ramach danego profilu klasy ogólnie (class_definition), umieszczę tu referencje do class_definition, chociaż zastanawiam się nad relacją czy 1 do wielu czy wiele do wielu, ale raczej wiele do wielu, oraz czy przedmioty określone powinny być w ramach definicji klasy czy jej konkretnej instancji czyli czy dać referencje do class_definition czy class_instance

Tu zdecydowanie n..n - kazda klasa moze miec wiele przedmiotow, a kazdy przedmiot moze byc do wielu klas
relacja wiele do wielu course <-> nauczyciel, bez komentarza

event - czyli wydarzenia związane w danym przedmiocie - kartkówka, sprawdzian algebra, sprawdzian funkcja kwadratowa, sprawdzań Mickiewicz

tabela grade - i tu mam największą wątpliwość, najbardziej pasuje mi zrobić relacje z event i z profilem ucznia, ale zastanawiam się czy później w trakcie programowania konieczność joinowania na każdym kroku z course np by pogrupować po przedmiotach czy coś w ten deseń nie byłaby warta wstawienia dodatkowej kolumny course_id, z drugiej strony mamy nadmiarowość bo event też przechowuje tą informację.

Tu powinines miec tabele laczaca kilka rzeczy: uczen_id, event_id, grade_id, date ( co w przypadku gdy kots poprawia sprawdzian nr2 ?)

oczywiście chce zrobić ocenianie w miarę elastyczne więc robię dodatkową tabelę grade_value w której opisuje jaki symbol oznacza jaką wartośc - przydatne np. dla przykładowej podstawówki 1-3 gdzie jest ocenianie jakimiś buźkami albo innymi sposobami.

to wszystko mozesz zalatwic tabela slownikowa grade - is_description

Wszystkie powyzsze uwagi wrzucam na luzie i do dalszej dyskusji ;)
W koncu niedziela wieczor :)
28.11.2010, 21:31
Łukasz

Łukasz Adamczewski Programista Symfony
/ Zend

Temat: Baza danych Dziennik Szkolny

Grzegorz L.:
Tu bym sie nie zgodzil - w jednej klasie moze byc wielu uczniow, ale kazdy uczen moze nalezec do jednej klasy, wiec bardziej tu pasuje relacja 1..n
Tylo problem w tym że jeśli zrobimy relacje 1..n to określimy że uczeń chodzi do klasy 1 a za rok co zrobimy, bo chyba nie zmienimy id klasy bo wtedy gubimy informacje o wynikach ucznia z poprzedniej klasy.
29.11.2010, 10:41

Temat: Baza danych Dziennik Szkolny

To zalezy, jak okreslisz klase. Jezeli okreslisz 1A, 1B,...2A, 2B itd to tak.
Natomiast jesli okreslisz jako rocznik_grupa, to mozesz w dodatkowej kolumnie przechowywac dodatkowy, wlasnie to 2A, 2B itd.

tak w uproszczeniu:

rocznik_id|opis|inne parametry|
1999A|3A|x,y,z,..|
1999B|3B|x,y,z,..|
2000A|2A|x,y,z,..|
2000B|2B|x,y,z,..|
..................

W ten spsoob nic nie tracisz

Poza tym, oceny przypisane do ucznia powinny byc w tabeli laczacej uczen_id, rocznik_id, event_id, ocena_id

albo... robisz tabele z historia (...) Zobacz więcej
29.11.2010, 10:57
Maciej

Maciej B. staram się być
człowiekiem...

Temat: Baza danych Dziennik Szkolny

Przepraszam.
Warto tu pamiętać jeszcze o tym, że uczniowie jednej klasy mogą być w różnych grupach na niektórych przedmiotach, np języki, gdzie mogą się dzielić pod kątem języka i stopnia zaawansowania, tudzież, w szkołach koedukacyjnych, zajęcia z WF bywają prowadzone oddzielnie dla młodzieży różnej płci, w ten sposób ten sam przedmiot może być w gestii np czterech nauczycieli... (chociaż to robi się ważne dopiero przy (...) Zobacz więcej
29.11.2010, 14:40
Łukasz

Łukasz Adamczewski Programista Symfony
/ Zend

Temat: Baza danych Dziennik Szkolny

Maciej B.:
Przepraszam.
Warto tu pamiętać jeszcze o tym, że uczniowie jednej klasy mogą być w różnych grupach na niektórych przedmiotach, np języki, gdzie mogą się dzielić pod kątem języka i stopnia zaawansowania, tudzież, w szkołach koedukacyjnych, zajęcia z WF bywają prowadzone oddzielnie dla młodzieży różnej płci, w ten sposób ten sam przedmiot może być w gestii np czterech nauczycieli... (chociaż to robi się ważne dopiero przy nadawaniu uprawnień :))


Kolejna rzecz którą pominąłem na tą chwilę. No ale temat dziennika będę ciągnął też na magisterce więc jak nie starczy czasu to będę kontynuował później. Na pewno warto zaznaczyć kwestię wewnętrznych podziałów przedmiotów np. damsko | męskie czy zaawansowane | podstawowe. I uwzględnienie uprawnień nauczycieli do konkretnej grupy.

Druga kwestia to dodatkowy podział czyli semestry.

Zastanawiam się jeszcze nad jedną kwestią - mianowicie kwestią podpinania uczniów do klas - za każdym razem kiedy jest zmiana klasy musimy mozolnie przepisywać idk uczniów do nowej klasy w tabeli łącznikowej, a ja zastanawiam się czy najpierw tych ludzi nie przypisać do jakiejs grupy, a potem dawać tylko id grupy do relacji z konkretną klasą.
29.11.2010, 15:34
Maciej

Maciej B. staram się być
człowiekiem...

Temat: Baza danych Dziennik Szkolny

A czy znajdziesz w szkole taką grupę, która będzie stała co do składu przez cały czas trwania. Lepiej, moim zdaniem, zdefiniować klasę/ grupę na podobieństwo KLASY :) i dopiero do tych klas, przypisywać jednostki a przedmioty i oceny z nich potraktować jako indywidualne i wtedy przepisywanie ucznia do innej klasy będzie tożsame z przypisaniem elementu uczeń do KLASY klasy a jego dorobek będzie: bądź w KLASIE kontynuacją dorobku bądź pozostanie składową historyczną.
Tak jak w arkuszach ocen. Czyli, moim zdaniem, chcąc zrobić dobry dziennik, który uwzględnia te niuanse o których piszesz, warto opracować coś w rodzaju "szczegółowego" arkusza ocen (bo te standardowe obejmują tylko oceny okresowe i roczne) i dziennik traktować jako bazę oglądaną przez filtr roku szkolnego dla danego rocznika wpisanego w odpowiedni (...) Zobacz więcej
29.11.2010, 17:13

konto usunięte

Temat: Baza danych Dziennik Szkolny

Dla własnej satysfakcji można taki dziennik zrobić. Ale, czy warto? - Są na rynku niezłe rozwiązania, np. Librus, z którego korzysta już trochę szkół w Warszawie: http://www.dziennik.librus.pl/ i raczej są na tyle mocni, że rynku nie oddadzą.
Dziwię się, że promotor zaakceptował taki temat. Wiem, to tylko praca magisterska, ale... czy warto po raz drugi odkrywać Amerykę?
Na przykład na ten moment nie ma dobrego programu do wspomagania zarządzania stołówką szkolną.
29.11.2010, 20:13
Łukasz

Łukasz Adamczewski Programista Symfony
/ Zend

Temat: Baza danych Dziennik Szkolny

Wojciech B.:
Dla własnej satysfakcji można taki dziennik zrobić. Ale, czy warto? - Są na rynku niezłe rozwiązania, np. Librus, z którego korzysta już trochę szkół w Warszawie: http://www.dziennik.librus.pl/ i raczej są na tyle mocni, że rynku nie oddadzą.
Dziwię się, że promotor zaakceptował taki temat. Wiem, to tylko praca magisterska, ale... czy warto po raz drugi odkrywać Amerykę?
Na przykład na ten moment nie ma dobrego programu do wspomagania zarządzania stołówką szkolną.

Może i masz racje, że Ameryki nie odkrywam, ale nie powiedziałem że to jest bezpośredni temat mojej pracy, ale raczej aplikacja którą wybrałem jako ilustracja dla omawianego zagadnienia.
29.11.2010, 21:22

konto usunięte

Temat: Baza danych Dziennik Szkolny

Aby pogłębić temat może warto zobaczyć, jak taki dziennik działa w praktyce. W szkole, gdzie aktualnie pracuję, wprowadzono Librusa na próbę w poprzednim półroczu, a obecnie już na serio. (...) Zobacz więcej
29.11.2010, 22:04
Łukasz

Łukasz Adamczewski Programista Symfony
/ Zend

Temat: Baza danych Dziennik Szkolny

Wojciech B.:
Aby pogłębić temat może warto zobaczyć, jak taki dziennik działa w praktyce. W szkole, gdzie aktualnie pracuję, wprowadzono Librusa na próbę w poprzednim półroczu, a obecnie już na serio. Mieliśmy szkolenie... ;)

Mój tata jest również nauczycielem i zdaje się też pracują na tej platformie. Najbardziej mnie ciekawi koszt rocznego utrzymania takiej platformy, wiem że jest jakaś refundacja przez miasto albo unię nie pamiętam dokładnie - innymi słowy ile to ustrojstwo kosztuje w praktyce.
29.11.2010, 22:09

Temat: Baza danych Dziennik Szkolny

Druga kwestia to dodatkowy podział czyli semestry.

W takim razie najpierw opracuj zalozenia do pracy inzynierskiej, np. uczniowe caly czas chodza do jednej klasy, nie powtarzaja i tak dalej. pozniej mozesz to modelowac, a na koncu przelozyc na relacyjna baze danych.

Do pracy magisterskiej zweryfikujesz zalozenia i podkrecisz poziom i zrobisz bardziej zaawansowana aplikacje.
Zastanawiam się jeszcze nad jedną kwestią - mianowicie kwestią podpinania uczniów do klas - za każdym razem kiedy jest zmiana klasy musimy mozolnie przepisywać idk uczniów do nowej klasy w tabeli łącznikowej, a ja zastanawiam się czy najpierw tych ludzi nie przypisać do jakiejs grupy, a potem dawać tylko id grupy do relacji z konkretną klasą.

Nie tak mozolnie, wystarczy jeden update.

A jak juz Maciej napisal - taka grupa jest wlasnie klasa. Jak chodzi o podzial na grupy damsko-meskie czy inne muzyka/plastyka itd. to mozesz stworzyc to jako grupe w tabeli uczniowie, dorzucisz jeden atrybut (bit zeby nie marnowac pamieci), grupa/osoba i stworzysz relacje na ta sama tabele.

Ale IMHO tak komplikujac bedziesz coraz bardziej sie niepotrzebnie zaglebial.

Zacznij od opisania zalozen czystym tekstem, opisz relacje miedzy nimi to tez ci (...) Zobacz więcej
29.11.2010, 22:48
Robert

Robert B. Człowiek ma jedne
usta i dwoje oczu
oraz uszu, po to,
żeb...

Temat: Baza danych Dziennik Szkolny

Wojciech B.:
...
Dziwię się, że promotor zaakceptował taki temat. Wiem, to tylko praca magisterska, ale... czy warto po raz drugi odkrywać Amerykę?

Librus posiada kilka wad zatem warto.

[edyta]
Nie jestem pewien czy to wina librusa, czy osób wypełniających dane - więc uwaga jest nieważna.Robert B. edytował(a) ten post dnia 30.11.10 o godzinie 12:56
30.11.2010, 12:55
Marcin

Marcin Mackiewicz Administrator baz
danych /
Programista, Wyższa
Szkoła Ban...

Temat: Baza danych Dziennik Szkolny

Pomysl na elektroniczny dziennik jest naprawde fajny - popieram pomysl. Moje uwagi:

1. Tabela z profilem [profile] (id) jest ok. Proponuje takze zrobic [profile_extra] jako tabele z dynamicznynie dodawanymi polami (cechy dodatkowe jakie sobie wymysli dana szkola

2. Tabela [history], (id PK, lp PK, rok_immatr, rok_szkolny, semestr_w_roku, semestr_kolejny, rok_nauki) gdzie prowadzimy historie danego ucznia (kazdy wpis odpowiada kolejnemu semestrowi nauki). Raz na pol roku (tak jak ida semestry) dokonujemy potem promocji ucznia na nastepny semestr. To pomoze np sprawdzac czy uczen w danym semestrze ma wszystko zaliczone. Proponuje tutaj takze dodac rok immatrykulacyjny ktory pozwoli zidentyfikowac proces dydaktyczny w danym cyklu nauki (rozroznianie powtarzajacych rok).
Tutaj mozna tez wprowadzic statusy na jakich jest uczen (OK, Trwa rozliczanie, Powtarzanie, itp.)

3. Tabela [przedmiot] gdzie przechowujemy informacje o tym jakie przedmioty na danym semestrze ma dany uczen. W tym miejscu zapisujemy rowniez koncowa ocene z danego przedmiotu.

4. Tabela [przedmiot_czastkowe] w ktorej to przechowujemy eventy przeprowadzane w ciagu roku (testy, sprawdziany, kartowki, odpytka, itp.). Pamietane dla ucznia, przedmiotu

5. Tabela [history_zachowanie] powiazana scisle z [history] gdzie wpisujemy informacje o okresowej ocenie postepow studenta

6. Tabela [przedmiot_zachowanie] w ktorej prowadzacy przedmiot moze wystawic opinie, spostrzerzenia, uwagi, itp.

Definiowanie klas:
Klasy w szole to nic innego jak grupa uczniow stworzona dla potrzeb przeprowadzania zajec.
Proponuje wiec stworzyc tabele [groups] oraz [groups_sklad] w ktorej beda trzymane sklady grup. Teraz klasa specjalna (np mat-fiz) to nic innego jak specjalna grupa tak wiec proponuje dodac to tego tabele [groups_cechy] w ktorej beda przechowywane informacje o tym jaka to jest klasa (cechy do grup). Jezeli chodzi o grupy to zakladane powinny byc z kluczem (rok_immatr) poniewaz grupa funkcjonuje tak dlugo jak uczniowie sie ucza (np gminazjum 3 lata) ale pamietac trzeba ze klasa 1A wystepuje co roku czyli po 2 latach mamy klasy 1A(2008) oraz 1A(2009) gdzie data jest rokiem kiedy uczniowie przyszli do szkoly.
Kazda klasa ma wychowawce (opiekun) co nasowa zrobienie slownika [wykladowcy] i przypisywania go bezposrednio do grupy, posrednio do ucznia.

No to mamy szkielet.
W takim wypadku jak teraz problemem jest nadawanie przedmiotow uczniom. Jeden uczen ma ok 15 przedmiotow. W klasie jest ok 30 uczniow co powoduje ze uzytkownik musialby nadac 15*30= 450 wpisow do tasbeli. W tym wypadku warto by pomyslec nad ramowym przebiegiem zajec (kazdy rocznik uczy sie wg jakiegos planu dydaktycznego). Proponuje dodac tabele [ramowka] oraz [ramowka_sklad] gdzie bedzie zdefiniowany standardowy rozklad przedmiotow dla danego roku_immatr, klasy, semestru. Pozwoli to dobudowac funkcje w UI ktora dla danej klasy (grupy studentow) nada w odpowiednim wpisie w historii odpowiednie przedmioty.

No to mamy podsawowy system do zarzadzania uczniami gdzie:
- Kazdy uczen moze uczyc sie indywidualnie (zestaw przedmiotow przy uczniu a nie przy klasie)
- Uczen moze powtarzac rok (kolejny wpis w historii studenta na odpowiedni rok szkolny na odpowiedni semestr nauki)
- Uczen moze zmienic klase (wyrzucenie z jednej grupy i zapisanie do drugiej)
- Przy przedmiotach mozna wpisywac oczeny czastkowe
- Kazdy uczen moze byc oceniony przez opiekuna (oceny semestralne zachowania)
- Kazdy uczen moze zostac zaopiniowany przez prowadzacego przedmiot

Relacji w bazie mysle nie bede opisywal bo nasowaja sie same. Za ortografy i literowki (...) Zobacz więcej
30.11.2010, 13:33
Danuta

Danuta Żak nauczyciel
informatyki,
projektant i
programista baz
dany...

Temat: Baza danych Dziennik Szkolny

Chętnie prześle Panu bazę danych pod Access2007, która była napisana dla dwuletniej szkoły policealnej. Była używana przez wiele lat, teraz biedna leży sobie. Na stronie http://infokrag.com.pl jest demo tego programu, ale chętnie mogę przysłac wersję pełną jezeli przyda się Panu do czegoś. Struktura jest dość rozbudowana - ale nie wiem, czy wystarczająca dla opisanego problemu.
30.11.2010, 14:04
Łukasz

Łukasz Adamczewski Programista Symfony
/ Zend

Temat: Baza danych Dziennik Szkolny

Dziękuję gorąco za wszystkie propozycję. Niedługo wstawię schemat bazy który powstał w wyniku dyskusji.

Na tą chwilę będę realizował następujące założenia:

podział klasy na grupy (wf|języki|zajęcia dodatkowe):

najpierw tabela łącząca uczeń <-> klasa, ale określona kluczem głównym dzięki czemu tworzę dodatkową tabele group_delegation w której odnosząc się do wcześniejszego id relacji uczeń<->klasa - mogę konstruować przynależność ucznia do konkretnej grupy.

używam tego później przy definicji przedmiotu gdzie będę miał pole group_type które wybierze docelowy typ grupy której się tyczy (dziewczyny|zaawansowaniu j. angielski) jako uczniów docelowych przedmiotu w kontekście danej klasy.

kwestię uczeń nauczyciel klasa rozwiązuję natomiast tworząc najpierw tabelę łącznikową przedmiot <-> nauczyciel (z kluczem głównym zamiast klucza zbiorowego), dzięki czemu tworząc dalej relację klasa(class_instance) tabela przedmiot_nauczyciel również z pojedynczym kluczem głównym.

Dzięki powyższemu zabiegowi umieszczając w tabeli ocen id z poprzedniej tabeli identyfikuje jednoznacznie klasę-grupę-przedmiot przy wstawianiu ocen. Na pewno w praktyce jak już wygeneruje odpowiedni kod klas i zacznę z nich korzystać wyniknie jeszcze parę niuansów.
Marcin Mackiewicz:
1. Tabela z profilem [profile] (id) jest ok. Proponuje takze zrobic [profile_extra] jako tabele z dynamicznynie dodawanymi polami (cechy dodatkowe jakie sobie wymysli dana szkola

To będzie przysłowiowa wisienka na torcie, jeśli bazowe funkcjonalności będą działały to na pewno będę dodatkowo rozszerzał schemat bazowy. Tak naprawdę to tą zmianę mogę wykonać w każdym momencie bo nie koliduje z innymi relacjami i tabelami.
2. Tabela [history], (id PK, lp PK, rok_immatr, rok_szkolny, semestr_w_roku, semestr_kolejny, rok_nauki) gdzie prowadzimy historie danego ucznia (kazdy wpis odpowiada kolejnemu semestrowi nauki). Raz na pol roku (tak jak ida semestry) dokonujemy potem promocji ucznia na nastepny semestr. To pomoze np sprawdzac czy uczen w danym semestrze ma wszystko zaliczone. Proponuje tutaj takze dodac rok immatrykulacyjny ktory pozwoli zidentyfikowac proces dydaktyczny w danym cyklu nauki (rozroznianie powtarzajacych rok).

Przy tabeli class_instance mam informację o roku i semestrze, natomiast tabelę history widzę raczej jako widok.

Przy obecnych założeniach bazy, nie tracę informacji o ocenach ucznia w na przełomie klas, bo jak już powiedziałem w tabeli ocen jest klucz który okresla klasę-przedmiot-nauczyciela więc wyciągnięcie informacji który uczeń dostał 3 z polskiego w 2 semestrze 3 klasy w 2009 roku będzie (mam nadzieje :D) możliwe.
Tutaj mozna tez wprowadzic statusy na jakich jest uczen (OK, Trwa rozliczanie, Powtarzanie, itp.)

Jak najbardziej, ale muszę o tym pamiętać bo zauważyłem że takie rzeczy często uciekają.
3. Tabela [przedmiot] gdzie przechowujemy informacje o tym jakie przedmioty na danym semestrze ma dany uczen. W tym miejscu zapisujemy rowniez koncowa ocene z danego przedmiotu.

Tutaj chyba też skłaniał bym się co do widoku.
4. Tabela [przedmiot_czastkowe] w ktorej to przechowujemy eventy przeprowadzane w ciagu roku (testy, sprawdziany, kartowki, odpytka, itp.). Pamietane dla ucznia, przedmiotu

Tak, zrobiłem coś takiego w tabeli ocen, gdzie jest id do eventu (dodatkowo w evencie robię jeszczę wage rozliczania danego wydarzenia)
5. Tabela [history_zachowanie] powiazana scisle z [history] gdzie wpisujemy informacje o okresowej ocenie postepow studenta

A tutaj tak naprawdę nie wiem co zrobić bo zachowanie jest tak jakby z innej beczki ni to przedmiot ni to status ucznia nadawany raz na semestr.
6. Tabela [przedmiot_zachowanie] w ktorej prowadzacy przedmiot moze wystawic opinie, spostrzerzenia, uwagi, itp.

Nauczyciel by chyba życie stracił na prowadzenie tego dziennika :D
Ale zrobiłem funkcjonalność skrzynki albo jakiegoś message boarda, żeby sobie bardziej nie komplikować w ocenianiu. (w końcu uwagi itd. to rzeczy nieformalne)
Definiowanie klas:
Klasy w szole to nic innego jak grupa uczniow stworzona dla potrzeb przeprowadzania zajec.
Proponuje wiec stworzyc tabele [groups] oraz [groups_sklad] w ktorej beda trzymane sklady grup. Teraz klasa specjalna (np mat-fiz) to nic innego jak specjalna grupa tak wiec proponuje dodac to tego tabele [groups_cechy] w ktorej beda przechowywane informacje o tym jaka to jest klasa (cechy do grup). Jezeli chodzi o grupy to zakladane powinny byc z kluczem (rok_immatr) poniewaz grupa funkcjonuje tak dlugo jak uczniowie sie ucza (np gminazjum 3 lata) ale pamietac trzeba ze klasa 1A wystepuje co roku czyli po 2 latach mamy klasy 1A(2008) oraz 1A(2009) gdzie data jest rokiem kiedy uczniowie przyszli do szkoly.
Kazda klasa ma wychowawce (opiekun) co nasowa zrobienie slownika [wykladowcy] i przypisywania go bezposrednio do grupy, posrednio do ucznia.

mam coś podobnego, z tym że mam układ:
definicja klasy - ogólnie o klasie np 3 klasa o profilu mat-fiz (dodatkowa tabela z profilem klasy)
instancja klasy - klasa z definicji plus specyfikacja w czasie + wychowawca.

Tutaj miałem pewien dylemat czy określać przedmiot - klasa, dla definicji czy dla instancji

Intuicja mi mówi że tu i tu bo czasem może się program zmienić i odstawać od przyjętego w danej klasie, ale z drugiej strony to kolejne komplikacje.

Na razie jednak robie dla definicji i widzę to tak że robie zapytanie:


select c.name, t.lastname
from
course c inner join class_course cc on (cc.course_id = c.id)
inner join class_definition d on (cc.class_id = d.id)
left join class_course_teacher cct on
(cct.class_id = cc.class_id and cct.course_id = cc.course_id)
inner join teacher t on (t.id = cct.teacher_id)
where cct.class_id is null


pisałem z głowy ale wydaje mi się że to zapytanie powinno wyświetlić jakie przedmioty mamy do obsadzenia i dodatkowo jakimi nauczycielami

spodziewam się uzyskać np.

polski | wołkow
polski | kukułka
angielski | grucha

No to mamy szkielet.
W takim wypadku jak teraz problemem jest nadawanie przedmiotow uczniom. Jeden uczen ma ok 15 przedmiotow. W klasie jest ok 30 uczniow co powoduje ze uzytkownik musialby nadac 15*30= 450 wpisow do tasbeli. W tym wypadku warto by pomyslec nad ramowym przebiegiem zajec (kazdy rocznik uczy sie wg jakiegos planu dydaktycznego). Proponuje dodac tabele [ramowka] oraz [ramowka_sklad] gdzie bedzie zdefiniowany standardowy rozklad przedmiotow dla danego roku_immatr, klasy, semestru. Pozwoli to dobudowac funkcje w UI ktora dla danej klasy (grupy studentow) nada w odpowiednim wpisie w historii odpowiednie przedmioty.

no i idąc tym kierunkiem opracować pewne metody automatyzacji wprowadzania danych. no temat jak najbardziej przyszłościowy, ale pewnie nie starczy czasu

uffff...
30.11.2010, 15:33

konto usunięte

Temat: Baza danych Dziennik Szkolny

Robert B.:
Wojciech B.:
...
Dziwię się, że promotor zaakceptował taki temat. Wiem, to tylko praca magisterska, ale... czy warto po raz drugi odkrywać Amerykę?

Librus posiada kilka wad zatem warto.

[edyta]
Nie jestem pewien czy to wina librusa, czy osób wypełniających dane - więc uwaga jest nieważna.Robert B. edytował(a) ten post dnia 30.11.10 o godzinie 12:56


Warto zrobić to... lepiej. Tylko pod tym warunkiem.
30.11.2010, 19:51

Następna dyskusja:

baza danych i serwis na oso...




Przeglądaj dyskusje w tej grupie

Setki wypowiedzi

Zobacz o czym się teraz dyskutuje

Pytania i odpowiedzi

Znajdź odpowiedź na swoje pytanie

Wyślij zaproszenie do