
SQL dotaz - spojeni tabulek
Dobry den, potrebovala bych poradit s nasledujicim problemem:
Pokousim se udelat mensi redakcni system, ktery mimo jine umoznuje vkladani novych uzivatelu... Muj problem je nasledujici:
Mam tabulku AUTORI, ktera je slozena z: id_autora, login, heslo, jmeno, email. Dale pak tabulku RUBRIKY - id_rubriky, rubrika.
Nyni chci vlozit noveho uzivatele pana Novaka a pomoci checkboxu mu urcit, ze ma pristup pouze do kategorie Prodej a Reklamace, cili ne do vsech treba 10ti kategorii.
Jak by mely vypadat tabulky AUTORI a RUBRIKY, aby toto bylo mozne? Dale pak SQL dotaz, ktery toto pozna, spoji dane tabulky a pri naslednem prihlaseni p. Novaka, az bude chtit pridat novy clanek - mel v SELECTBOXU zobrazen pouze Prodej a Reklamace.
Snad je to srozumitelne...
Dekuji moc!
Lucka
No, viděl bych to na vytvoření třetí tabulky s názvem např. OPRAVNENI, která vlastně propojí autory s rubrikami.
Struktura tabulky OPRAVNENI: id_opravneni, id_autora, id_rubriky
A jak vybrat povolené rubriky pro pana Nováka podle zadaného příkladu:
Tímto zjistíš ID rubrik, do kterých má pan Novák přístup.
Pokud bys chtěla zjistit ne ID, ale přímo názvy těch rubrik, tak nějak takto:
Jeste bych mela jednu otazecku?
SELECT rubriky.rubrika FROM autori, opravneni, rubriky
WHERE autori.jmeno="Novak"
AND autori.id_autora = opravneni.id_autora
AND rubriky.id_rubriky = opravneni.id_rubriky
Tenhle select je dobry, ale neznamena to, ze kazdemu autorovy nalezi prave jedna kategorie??? Jak udelat, aby mohl mit pristup treba do trech? Jaky datovy typy budu pouzivat?
DIky!
Lucka
Ten SELECT vybere všechny kategorie, pro která má dotyčný autor oprávnění - neznamená to, že jednomu autorovi náleží jedna kategorie. Výsledek SELECTu bude v datovém typu pole.