ripeto:
Originariamente inviato da }gu|do[z]{®©
solitamente èer le relazioni uno a molti conviene fare una apposita tabella.. per cui avrai
id utente altri dati dell'utente
id bloccati
le due tabelle possono essere unite alla bisogna con un join sugli id
![]()
perchè tu quati record hai per ogni utente? uno.. giusto?
e quanti utenti bvbloccati per ogni utente? potenzialmente infiniti....
e allor anon puoi memorizzare tutto con una sola riga...
ti serve una riga per memorizzare il tuo utente e i suoi dati... e una riga per memorizzare ognuno degli utenti bloccati, in un'0altra tabella che serve solo a quello....
poi recupoeri tutto facendo un join.
quindi.. le tabelle sono quelle che ti ho detto prima (della tabella messaggio non m inetressa troppo)..
id utente altri dati dell'utente (chiamiamola "utenti")
id bloccato (chiamiamola "bloccati")
dove per esempio hai...
1 ciccio roma bla bla bla
2 paperino genova bla bla bla
3 gm terronia bla bla bla
4 guidoz roma bla bla bla
e poi..
1 2 (ciccio blocca paperino)
1 3 (ciccio blocca gm)
4 1 (guidoz blocca ciccio)
gli utenti bloccati per l'utente "ciccio" lo recuperi così:
select u.utente
from utenti as u
join bloccati as b on b.bloccato = u.id
join utenti as u2 on u2.id = b.id
where u2.utente like "ciccio"
giocando in modo simile coi join puoi prendere solo i messaggi il cui destinatario sia ciccio e il mittente non sia nell'insieme di sopra (puoi fare una subquery)
spero di essere stato chiaro stavolta.
![]()