Ti consiglio allora di creare una tabella chiamata
friendships con la seguente struttura:
- id INT AUTO_INCREMENT
- user1 INT
- user2 INT
- confirmed ENUM('0','1')
Il primo campo è un identificativo univoco che rappresenta la richiesta di amicizia, che potrai, ad esempio, usare per cancellarla (come query nell'URL).
Il secondo e il terzo campo rappresentano i due utenti coinvolti nella richiesta di amicizia (conterrà gli ID degli utenti). L'unica pecca di questo sistema è che quando effettui una query per controllare se l'utente A è amico di B, dato che potrebbe essere contenuto sia nel campo
user1 che in quello
user2 il codice SQL dovrà essere qualcosa come:
Codice:
SELECT * FROM friendships WHERE (user1 = 'A' AND user2 = 'B') OR (user1 = 'B' AND user2 = 'A')
Ti consiglio, quindi, di creare una funzione per automatizzare questa operazione, o ancora meglio un oggetto
user.
Il quarto e ultimo campo conterrà
0 se la richiesta di amicizia non è stata confermata,
1 se è stata confermata.
Che ne pensi? Può funzionare?