Ich hätte eine Link-Tabelle für Freunde oder was auch immer, mit 2 Spalten, die beide PKs und beide FKs für die Benutzertabelle sind.
Beide Spalten wären die UID, und Sie hätten zwei Zeilen pro Freundschaftsbeziehung (A, B und B, A). Solange beide Spalten PKs sind, sollte es immer noch im normalen Format sein (obwohl es anderen freisteht, mich diesbezüglich zu korrigieren)
Es ist eine etwas komplexere Abfrage, aber nichts, was nicht durch eine gespeicherte Prozedur oder eine Geschäftslogik abstrahiert werden kann, und es ist im Normalformat, was normalerweise nett zu haben ist.