Autor | Zpráva | ||
---|---|---|---|
Martin82 Profil * |
#1 · Zasláno: 30. 5. 2007, 14:52:19
Caute, peru se s tim uz nejaky hodiny, tak snad mi poradi nekdo tady...
Mam tri tabulky: 1. project 2. zakazka (maji polozku projekt, kterou je jednoznacne urceno pod jaky projekt spadaji - coz. je id projektu) 3. lide_cis (tabulka - id, uzivatel, projekt (id projektu), prava) Muj ukol je vyhledat vsechny zakazky uzivatele 24 !!! Příklad mého dotazu: SELECT z.* FROM zakazka z, project p, lide_cis l where p.id=z.projekt and l.projekt=p.id and l.uzivatel=24 order by z.nazev Problem je pokud mam dva zaznamy v tabulce lide_cis - takto => id|uzivatel|projekt|prava 1|24|11|'klient' 2|24|11|'manager' Potom mi ze SELECTu vyleze zakazka, kde je uzivatel c.24, dvakrat (je tam klientem i managerem). Zkousel jsem to obejit pres prikaz DISTINCT, ale kdyz spustim dotaz, spadne mi cela DB (coz samozrejme nevim proc - Lost connection) Muzete mi teda nejak pichnout? ;) |
||
MzM Profil |
#2 · Zasláno: 30. 5. 2007, 15:22:54
a to je špatně, že je tam klientem i managerem?
Můžeš to udělat tak, že práva budeš mít v nějaké tabulce, kde k danému právu (roli) dáš nějakou váhu, nebo práva poskládáš tak, aby tuto váhu zastupovalo ID. Pak vybereš roli (právo) s nejvyšší váhou. Nebo si necháš vylistovat všechna práva a někde jinde zjišťuješ, jestli je tam to správné právo. Tohle se mi zdá rozumnější třeba z pohledu, že může být admin sekce1 i admin sekce 2 a tyhle role jsou nezastupitelné. |
||
Martin82 Profil * |
#3 · Zasláno: 30. 5. 2007, 15:28:13
a to je špatně, že je tam klientem i managerem?
No spatne to neni, ona situace, kdy uzivatel systemu bude zaroven klient i manager asi nenastane, ale pro jistotu, by to melo slapat ;) Kazdopadne dik za rady, zkusim popremyslet nad Tvymi navrhy ;) Spise me zarazi, ze to padne pri pridani prikazu DISTINCT - bylo by to pro me asi nejjednodussi reseni... |
||
Kajman_ Profil * |
#4 · Zasláno: 30. 5. 2007, 20:44:31
tak použijte group by nebo vnořený select
SELECT z.* FROM zakazka z where z.projekt in (select projekt from lide_cis where uzivatel=24) order by z.nazev |
||
Martin82 Profil * |
#5 · Zasláno: 31. 5. 2007, 11:52:45
Super diky... a tak jednoduche, ze me to nenapadlo :)
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0