Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Školní databáze

Aktivity
Avatar
Anna
Člen
Avatar
Anna:14.4.2019 21:39

Nejde my dekomponovat relace tak, aby byly správné.

Zkusil jsem: přikládám špatné relační spojení

Chci docílit: Snažím se vytvořit funkční databázi pro evidenci studentů, tříd, učitelů a předmětů, které učí. Prosím o radu, kdo vidí, jak bych mohla tuto databázi zjednodušit a přetvořit správně. Děkuji předem :)

 
Odpovědět
14.4.2019 21:39
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.4.2019 8:09

skolaonline.cz ?

osoba - id, jmeno, prijmeni, adresa, id_mesto, studuje, pracuje
mesta - id_mesto, nazev, psc
skolni rok - id_skolni_rok, nazev, od, do
studuje_v_roce - id_osoba, id_skolni_rok
pracuje - id_osoba, id_prace
prace - id_prace, nazev, popis
predmety - id_predmet, nazev
ucebny - id_trida, nazev, popis
rozvrhy - id_ucebna, id_predmet, od, do, id_ucitel
stud_rozv - id_student, id_rozvrh
... (urcite tam mam spoustu chyb)

To, co chces udelat, je pomerne slozita zalezitost, mnoho a mnoho tabulek, ktere postihuji cele fungovani skoly. Mnoho zajimavych osobnich udaju. Pokud to chces udelat, musis rozebrat kompletne vsechno, co se na skole dela. Idealne, at ti studijni oddeleni vysvetli, co vsechno zarizuji. Od tisku dopisu studentum o prijeti az po diplomy.
NA SU Opava pouzivaji Stag jako studijni system. Prechazeji na system Mas. univerzity Brno, protoze je lacinejsi.
Pouzivate u vas aspon Moodle? To je sikovna vec pro elektronickou evidenci predmetu, script. Ten by bylo fajn propojit na tvuj system, aby se do Moodle zapisovali predmety, do nich ucitele a studenti automaticky. Samozrejme, v moodle to jde i pres heslo. Ale pomohlo by to zautomatizovat cely proces :) Mene prace pro adminy, mene pro studenty.

 
Nahoru Odpovědět
15.4.2019 8:09
Avatar
Anna
Člen
Avatar
Odpovídá na Peter Mlich
Anna:15.4.2019 8:42

Ano vím, že je to relativně složité. Proto by mi šlo pouze o zjednodušení a to tak, že bych evidovala pouze učitele a studenty. Každý zadaný učitel učí jen jednu třídu (třídní) a pouze 1 předmět. Jde mi zatím pouze o princip ne o funkční celek

 
Nahoru Odpovědět
15.4.2019 8:42
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.4.2019 12:29

Ok.

Jeste mne napada jedna zaludnost :) Kazdy clovek ma login, treba do studijniho systemu. A ten clovek muze byt soucasne ucitel i student (v pripade VS). A je treba ho vest pod jednim uctem kvuli vydavani prukazek slev na vlaky (ISIC a oni potrebuji webovou adresu, kde overi, zda student studuje ci ne). Nebo muze byt student a pak nastoupit jako ucitel. Takze by bylo fajn, kdyby pro vnitrni systemy to bylo stale stejne ID, mozna.
A budes mit treba vic systemu, propojenych, IS, elearning moodle, firemni mail. Loginy budes tahat tedy z LDAP a propojovat na jakousi databazi osob. To by byl dost dobry duvod dat databazi osob do jedne tabulky nabo to umet propojit SQL dotazem (to by asi nebyl problem). A pak mit pomocnou tabulku, kde mas dalsi info, ktere uz vnejsi system nepotrebuje.

Kdyz to tve zjednodusim, tak by to mozna slo takto

ucitel - id_ucitel, jmeno, prijmeni, adresa, mesto, aktivni
student - id_student, jmeno, prijmeni, adresa, mesto, aktivni
predmety - id_predmet, nazev, aktivni
ucebny - id_trida, nazev, popis, aktivni
rozvrhy - id_rozvrh, id_ucebna, id_predmet, id_ucitel, od, do
stud_rozv - id_student, id_rozvrh

aktivni - aby slo nastavit, zda je osoba, mistnost, predmet aktivni nebo ne, bez nutnosti mazat
Treba se ti stane, ze nejakou mistnost potrebujes predelat, tak je dobre ji z rozvrhu vypnout. Pripadne prepsat na jinou.

Rozvrh bych mel jako tabulku zvlast, kde vytvoris cas od-do a priradis mu ucitele, mistnost, predmet.
Tak muzes tahat informace, seznam predmetu pro ucitele (vytisknout ucitelovi a tez pro evidenci), seznam pro studenty a seznam (vytisknout studentovi), co se vyucuje v mistnosti (nalepit vedle dveri ucebny).
stud_rozv - To je prave zapis studenta na rozvrh. Ono, i pro ucitele by mohla byt tabulka zvlast, pro prehlednost. Ale to asi nema smysl, ucitel bude zvdy 1 v mistnosti. Leda bys mela 2 ucitele, pak by bylo asi rozumnejsi mit. (to muze byt treba pro anglictinu, ale to mozna pujde do zvlastni mistnosti; nebo deleni kluci dilny, holky vareni)

rozvrhy - id_rozvrh, id_ucebna, id_predmet, od, do
stud_rozv - id_rozvrh, id_student,
ucit_rozv - id_rozvrh, id_ucitel
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
15.4.2019 12:29
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.4.2019 12:33

Aha, a koukam, ze mas jeste jednu skupinu. Kmenova trida. To bych resil spesl tabulkou. Jakoze '1A', asi.

kmenova - id_kmenova, id_ucitel, id_student, nazev, popis

Pozn. Ty id davam na zacatek, protoze si myslim, ze nekter sql operace probihaji rychleji (treba s indexy), kdyz jsou cisla pohromade a nedulezite delkou promenlive stringy az za tim.

 
Nahoru Odpovědět
15.4.2019 12:33
Avatar
Anna
Člen
Avatar
Anna:17.4.2019 0:17

Dejme tomu, že jsem vytvořila relativně funkční databázi pro evidenci studentů, učitelů a tříd. Když se ale snažím vytvořit rozvrh, tak ve formulářích se mi zobrazuje správně,a le pokud tvořím dotaz tak mi vyskočí pouze ID a ne názvy. Nevíte, čím by to mohlo být/jak to napravit?

 
Nahoru Odpovědět
17.4.2019 0:17
Avatar
Odpovídá na Anna
Michal Štěpánek:17.4.2019 6:45

pokud tvořím dotaz tak mi vyskočí pouze ID a ne názvy. Nevíte, čím by to mohlo být/jak to napravit?

Když nám neukážeš ten dotaz, težko ti můžeme říct, co je v něm špatně...

Nahoru Odpovědět
17.4.2019 6:45
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Anna
Člen
Avatar
Odpovídá na Michal Štěpánek
Anna:17.4.2019 7:09

Tady jsou příkazy, kde skrze ID zobrazím jména. Ale při dotazu se zobrazí pouze ID

 
Nahoru Odpovědět
17.4.2019 7:09
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:17.4.2019 7:43

Nepouzivam tenhle zpusob prace s db, takze netusim, jak se to v nem zapise...

rozvrhy: id_rozvrh, id_ucebna, id_predmet, od, do

SELECT id_rozvrh, id_ucebna, id_predmet, od, do
FROM rozvrhy

zobrazi sloupce
id_rozvrh, id_ucebna, id_predmet, od, do

SELECT
    a.id_rozvrh,
    b.nazev AS ucebna,
    c.nazev AS predmet,
    a.od,
    a.do
FROM
    rozvrhy a
    LEFT JOIN ucebny b ON b.id_ucebna=a.id_ucebna
    LEFT JOIN predmety c ON c.id_predmet=a.id_predmet
--- nebo
SELECT
    rozvrhy.id_rozvrh,
    ucebny.nazev AS ucebna,
    predmety.nazev AS predmet,
    rozvrhy.od,
    rozvrhy.do
FROM
    rozvrhy
    LEFT JOIN ucebny ON ucebny.id_ucebna=rozvrhy.id_ucebna
    LEFT JOIN predmety ON predmety.id_predmet=rozvrhy.id_predmet

To id rozvrhy je tam dobre, kdyz si tam budes chtit udelat tlacitko pro DELETE.

 
Nahoru Odpovědět
17.4.2019 7:43
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.