Diskuze: DB kontrola
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 12 zpráv z 12.
//= 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.
Nemůžeš nastavovat na "cizí" klíče primary_key. Cizí klíč je primary_key v té tabulce, kterou tím "provazuješ". A jestli je návrh databáze v púohodě je těžko soudit, když nevíme, co má výsledná aplikace dělat a co má umět...
Tento databázový systém by měl realizovat zjednodušený model výuky florbalového trenéra na určitou licenci. Jako hlavní entity mám florbalovy_trener, florbalovy_oddil, licence a instruktor.
1.) Každý 'instruktor' může vyučovat více 'licencí' a každá 'licence' může být vykonávaná více 'instruktory', tento vztah M:N rozkládá tabulka 'vyucuje' jednoduchým propojením 'id_instruktor' a 'id_licence'.
2.) Každý 'florbalovy_trener' se může vyučovat více 'licencí' a jednu 'licenci' může mít objednáno více 'florbalovych_treneru', tento vztah M:N rozkládá tabulka 'harmonogram' jednoduchým propojením 'id_trener' a 'id_licence' a dále přes 'id_instruktor' připojuji tabulku 'instruktor', abych získal lépe údaje o instruktorech.
3.) Vztah mezi 'florbalovy_trener' a 'florbalovy_oddil' je typu 1:N, pouze přiřazuje jednomu 'trenérovi' jeden 'oddíl'.
-> v obrázku, který jsem posílal, mám navíc tabulku 'prihlasi_se', ta mi momentálně přijde zbytečná, takže jsem jí vynechal a chci se zeptat, zda by to šlo takto? Děkuji za odpověď.
V podstatě by to mělo být OK. Jen ta tabulka, cos smazal zbytečná až tak úplně není, bo v ní by byly informace o tom, kterého kurzu se který trenér zúčastní. Bez ní se to nedozvíš a budeš mít problém s určením počtu volných míst na kurzu...
3.) Vztah mezi 'florbalovy_trener' a 'florbalovy_oddil' je typu 1:N, pouze přiřazuje jednomu 'trenérovi' jeden 'oddíl'.
tento vztah ale v tabulkách nemáš, buď bys měl mít u trenéra uvedeno ID klubu, nebo u klubu mít ID trenéra (pokud je skutčně pouze jeden trenér k jednomu klubu a pokud jeden trenér nemůže trénovat více klubů). Jinak bych udělal další vazební tabulku "Trener_Klub"...
Dobře a pokud bych tuto tabulku vrátil tak bych měl vazby:
1.) trenér a oddíl vazba 1:N
2.) trenér a harmonogram by rozkládala tabulka přihlási_se vazba M:N
3.) instruktor a licence by rozkládala tabulka vyucuje vazba M:N
A moje otázka zní vazba harmonogram - instruktor - licence by byla jaká vazba? Nebo jak to mám propojit? Děkuji za odpověď.
ad 1) samotným vrácením tabulky toho nedocílíš. Musíš přidat do
jedné z tabulek ten cizí klíč (pro 1:M)
ad 3) pokud předpokládám, že na jednom kurzu vyučuje jen jeden instruktor a
pouze jednu licenci, pak je to takto správně
Moc jsem nepochopil co chceš říct tou první odpovědí? Mluvíš tam o té tabulce 'prihlasi_se' ?
Když tam vrátíš tabulku "prihlasi_se", budeš mít přehled o tom, kdo kdy absolvoval jaký kurz. Vazbu trenér - klub musíš udělat formou cizího klíče v jedné z tabulek. Buď do tabulky trenér dát ID klubu, nebo do tabulky klub dát ID trenéra. Ovšem v případě, že trenér bude trénovat více klubů, nebo klub bude chtít mít více trenérů, pak to takto nepůjde a budeš muset vytvořit vazební tabulku
Zobrazeno 12 zpráv z 12.