Hi, also ich habe mir für eine Buddyliste das Nested etwas vereinfacht gehabt.
Aber ok.
Kann dir ja mal den Ansatz nennen wie ich das dann machte.
Also Tabelle User :
user_id
name
usw.

Tabelle Buddy
user_id1
user_id2
status
datum_anfrage
datum_best
user_id_anfrage

Tabelle Buddy_Status

Also z.b.
1 = Anfrage
2 = Bestätigt
3 = Ignoriere
4 = Abgelehnt
usw

Das wäre die vereinfachte Form von meiner.
unter status habe ich eine Auflistung der Möglichkeiten die ich nutze.

Unter user_id1 habe ich immer die niedrigere id abgelegt.
datum_anfrage wann wurde diese Anfrage gestellt.
datum_best wann wurde diese Anfrage bestätigt und welchen Status ergab es dann.
user_id_anfrage wer von beiden hat diese Anfrage gestellt.

Habe dies so gemacht das ich Anfragen die z.b. nicht beantwortet werden nach einer gewissen zeit Löschen kann.
Der Rest bleibt dir überlassen wie weit du hiermit gehen willst.

Nested deswegen weil es ja schon eine Hierarchie hat.
Wie gesagt ist eine vereinfachte Form davon was ich da nutze bei mir, liegt daran das ich nicht ständig nach Datenleichen suchen möchte und vor allem daran das man hier dann auch mit Datum Arbeiten kann, z.B. dem User sagen wann wurde er angefragt und wie lange bleibt eine Anfrage erhalten ehe sie gelöscht wird.
usw. usw.

MfG