Al limite, se non vuoi fare troppe query e temi per un appesantimento del DB, puoi creare un certo nuemro di campi (tanti quanti il numero di attività da mostrare), e creare una sola riga per utente, così tutto si riduce ad una select ed un update. Quindi, se vuoi mostrare le ultime 3 attività potresti avere:
codice:
Tab_Log
id_utente
ult_agg
att1
att2
att3
In cui id_utente è chiave primaria, ult_agg contine l'ultimo campo in cui hai inserito l'attività. In tal modo, se l'utente fa qualcosa accedi al suo record.
Se non esiste lo crei inserendo ult_agg=0 e id_utente=l'id dell'utente. Quindi invochi l'aggiornamento dell'attività
Come aggiornamento dell'attività non devi fare altro che, recuperata la riga dell'utente ed il valore di ult_agg, poi calcoli
codice:
$ult_agg=($ult_agg+1)%3
quindi fai una bella update
codice:
UPDATE Tab_Log SET ult_agg = $ult_agg, att$ult_agg = $testoAgg WHERE id_utente=$id
ed il gioco è fatto: una select ed una update con ricerca su indicizzatissima chiave primaria.
se vuoi mostrare n attività aumenta il nuemro di righe att da att1 a attn e al po di %3 useri %n