Sarebbe meglio ammettere la ridondanza in questo caso, per migliorare la velocità. Alla tabella delle notizie, aggiungi questi campi:
comments_count int not null default 0,
likes_count int not null default 0,
hits_count int not null default 0
Quando un commento/mi piace/hit viene aggiunto/eliminato, se il database supporta i trigger, attiva un incremento/decremento del contatore di riferimento e, in caso contrario, fallo manualmente su ogni inserimento/eliminazione (forse una stored procedure?).
Questo tipo di dati viene più spesso letto che scritto, quindi per ottimizzare la velocità di lettura, rallentare la velocità di scrittura e lo spazio di archiviazione non è un grosso problema.
Di tanto in tanto, sarebbe corretto eseguire una query che aggiorni questi contatori se per qualche motivo diventano errati.