nel mio cms faccio così...

nella tabella che contiene gli articoli avrai altri due campi: media_voto e voti_totali

quando devo aggingere un voto, prendo il media_voto lo moltiplico per voti_totali (prima di incrementarlo di +1), ci aggiungo il voto appena effettuato dall'utente e divido tutto per (voti_totali+1)

poi ci sarà un'altra tabella voti, in cui mi viene salvato id_articolo, data, ip, id_utente, ecc per non permettere il doppio voto

per il 'mi piace' puoi semplicemente fare un'array dei nomi o degli id utente e lo salvi, serializzandolo, in un campo sempre nella tabella articoli