Autor | Zpráva | ||
---|---|---|---|
whoami Profil |
Zdravím.. nevím jak přesně podat to co mám v hlavě.. ale pokusím se o to..
Zrovna pracuji s velkou mysql db která obsahuje hodně provázání jednotlivých tabulek křížem krážem.. Kromě jednoduchých spojení jako je například..: Tabulka.: "uživatelé" id username password Tabulka "obrázky uživatelů" id user (foreign key -> uživatelé.id) file které v případě jeden obrázek na uživatele provedu pomocí left join a záskám jednu tabulku (id, username, password, file).. Zajímalo by mě jak to na db vrstvě udělat pokud mám například k jednomu uživateli v tabulce "obrázky uživatelů" neznámí počet řádků odkazujících na uživatele.. Lze toto něak použitelně získat jedním dotazem..? Jediné co mě napadá je nějakým způsobem do cílového výsledku přidat sloupeček se soubory oddělenými čárkami.. A z tohoto důvodu se chci zeptat jestli není někdo kdo by mě odkázal správným směrem.. Velice děkuji.. PS.: uvádím na jednoduchém příkladu který by se dal v php pomocí dvou sql volání získat (při znalosti id uživatele si stáhnu jeho řádek z tabulky uživatelé a všechny řádky z tabulky obrázky).. jenže v mém případě a s takovým počtem pod-vnořených tabulek je sql volání příliš mnoho.. |
||
mimochodec Profil |
#2 · Zasláno: 18. 4. 2012, 18:08:03
whoami:
„které v případě jeden obrázek na uživatele provedu pomocí left join a záskám jednu tabulku (id, username, password, file)..“ které v případě libovolný počet obrázků na uživatele provedeš úplně stejně. Takže obrázky získáš jedním dotazem. (jestli správně chápu tvůj popis) |
||
Tori Profil |
#3 · Zasláno: 18. 4. 2012, 22:14:40
whoami:
To pokaždé potřebujete všechna data uživatele naráz, anebo jsou stránky, kde potřebujete jen některá data? Pokud to druhé, tak bych to nějak logicky rozdělila do funkcí podle toho, co je potřeba (základní údaje o uživateli, veřejný profil, soukromé zprávy, obrázky, ...), a pak některé z nich zabalila dohromady getCompleteUserDate($userId) { $data = array(); $data['profil'] = getUserProfile($userId); $data['obrazky'] = getUserImages($userId); // ... atd. return $data; } |
||
whoami Profil |
#4 · Zasláno: 19. 4. 2012, 14:52:40
mimochodec:
Ano.. to je sice pravda ale pak mi vznikne několik duplicitních řádků (id, username, password, file) ve kterých je jediné rozdílné pole "file".. Než toto tak je lepší si zvlášť stáhnout uživatele a zvlášť obrázky.. |
||
Kajman Profil |
#5 · Zasláno: 19. 4. 2012, 15:13:08
whoami:
Možná pro vás bude přínosné porovnání. http://php.vrana.cz/srovnani-dotazu-do-zavislych-tabulek.php A doporučuji tam prokliknout i ten odkaz přesunout do knihovny. |
||
Časová prodleva: 12 let
|
0