Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
#1 · Zasláno: 6. 1. 2013, 12:14:26
Drive jsem ve skole resil priklad, kdy ucitel mohl ucit ve vice tridach, max 6. Udelal jsem tedy 2 tabulky
Ucitel idUcitele jmeno vyuka1, vyuka2...vyuka8 1 martin 2 3 ... 9 2 ivana 3 4 ... 7 Tridy idTridy nazev 2 fsdf 3 45 4 fds Uz je to celkem dlouho a na tenhle priklad jsem zapomnel, tak se chci zeptat, zda je to spravne. A jak vybrat ucitele a zobrazit nazvy trid? |
||
jenikkozak Profil |
#2 · Zasláno: 6. 1. 2013, 12:26:34
unlucky:
Lepší by byly tři tabulky - učitelé, třídy a výuka, která by obsahovala id učitele a id třídy. |
||
Someone Profil |
#3 · Zasláno: 6. 1. 2013, 12:32:12
unlucky:
Toto je samozřejmě špatný návrh. V tomto případě se již nejedná o 1:N ale o M:N, kde správným řešením je třetí tabulka, která bude obsahovat id učitele a id třídy ve které učí (viz. [#2] jenikkozak). Návrh poté vypadá asi takto učitelé ID | JMENO 1 | Novák 2 | Smetana třídy ID | NAZEV 1 | prima 2 | sekunda 3 | tercie výuka ID_UCITELE | ID_TRIDY 1 2 // tento záznam značí, že učitel Novák učí ve třídě sekunda 1 3 // Novák v tercii 2 1 // Smetaan v primě |
||
unlucky Profil |
#4 · Zasláno: 6. 1. 2013, 12:57:52
a jak by vypadal dotaz, kde bych zobrazil ucitele + vsechny jeho tridy?
|
||
Kajman Profil |
#5 · Zasláno: 6. 1. 2013, 15:36:28
SELECT u.*, t.nazev trida FROM uzitele u JOIN vyuka v ON u.id = v.id_ucitele JOIN tridy t ON v.id_tridy = t.id WHERE u.id = 1 |
||
Časová prodleva: 11 let
|
0