No, zkusme to zjednodušit. V podstatě se snažíte najít způsob, jak spojit dva uživatele dohromady.
Protože se snažím dělat věci jednoduše a rozhodně tím nenaznačuji, že toto je nejlepší způsob, jak to udělat, považuji za nejjednodušší způsob, jak toho dosáhnout, je vytvořit novou tabulku (users_friends) s následujícími poli:(user_id) a (friend_id).
No, takže řekněme, že moje user_id je 5. Your user_id je 10.
Chci si vás přidat jako svého přítele, proto bych do nově vytvořené tabulky přidal záznam s následujícími hodnotami:user_id =5, friend_id =10.
Řekněme, že chcete zobrazit všechny mé přátele, můžete spustit dotaz jako:
SELECT * FROM `users` WHERE `user_id` IN ( SELECT `friend_id` FROM `users_friends` WHERE `user_id` = '5' );
Odebrání přítele je samozřejmě snadné, stačí smazat záznam z nově vytvořené tabulky ...
DELETE FROM `users_friends` WHERE `user_id` = '5' AND `friend_id` = '10';
A fuj, najednou už nejsi můj kamarád;)
Takže ano, toto jsou základy. Než přejdu k řešení, které vám umožní větší flexibilitu, zkusil bych toto řešení.