Autor | Zpráva | ||
---|---|---|---|
Neas Profil |
#1 · Zasláno: 11. 4. 2012, 20:37:55
Ahoj.
Řeším v současné době takový zádrhel: mějme na stránce uživatelský profil a možnost přidávání do přátel, jako dnes již na spoustě jiných webů. Rád bych umožnil zveřejnění tohoto profilu pouze lidem, které má jeho majitel v přátelých a navíc všem jejich přátelům. Lámu si však hlavu s tím, jak zjistit, kdy se má člověku stránka zobrazit a kdy ne, neboť jediný postup, jaký mě napadá, je vybrat z databáze ID všech přátel majitele profilu a od každého z nich pak ještě seznam jeho přátel, což ale dává dohromady ohromné množství SQL dotazů, což rozhodně nepovažuji za správný postup. Nějaké návrhy, jak toto řešit? Struktura tabulky, která uchovává záznamy o přátelství: id(int) | owner_id(int) | friend_id(int) (2 záznamy pro každé přátelství)
|
||
juriad Profil |
#2 · Zasláno: 11. 4. 2012, 20:48:51
jedním selectem můžeš vytáhnou všechny:
SELECT p.friend_id FROM pratelstvi p WHERE p.owner_id = TVE_ID -- bezprostřední přátelé UNION -- sjednocené s SELECT p2.friend_id FROM pratelstvi p1 JOIN pratelstvi p2 ON (p1.friend_id = p2.owner_id) WHERE p1.owner_id = TVE_ID -- přáteli přátel |
||
Časová prodleva: 13 let
|
0