Diskuze: Školní databáze
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
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.
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
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
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.
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?
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ě...
Tady jsou příkazy, kde skrze ID zobrazím jména. Ale při dotazu se zobrazí pouze ID
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.
Zobrazeno 9 zpráv z 9.