Autor Zpráva
Neas
Profil
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
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: