Originariamente inviato da Emulman
personalmente ritengo che la prima soluzione sia la migliore...se ad esempio hai un campo di tipo TEXT (non VARCHAR quindi) puoi mettere tanti ID separati da un simbolo tipo *, ad esempio 1*2*3*4*5 ; poi basta un comando $array = explode('*', $record['id_amici']; per avere un array con cui lavorare iN MEMORIA e quindi più veloce; nel secondo caso invece saresti nel caso di uan relazione mOLTI A MOLTI (un amico può avere più amici e viceversa) per cui appunto come giustamente fai rilevare occorre una tabella temporanea con unico ID utente ed un unico ID amico per avere una relazione UNO AD UNO. Ma così sicuramente si rallentano un pò le cose...cmq, dovresti fare una prova con tutti e due (ad esempio che leggano 100 amici) e controllare gli orari di inizio e fine script!
Secondo me potrebbero esserci inconsistenze generate dal controllo duplicità dato che devi leggere un campo varchar.