Mi sembra buono come sistema, al massimo io non prevederei il campo vuoto, lo inizializzerei in ogni caso, ad esempio:
- l'utente scrive il messaggio, viene effettuata la query e il campo "approvato" lo inizializzi a "no"
- tu controlli se il messaggio va bene e in caso positivo modifichi tale campo in "si"

così non corri il rischio di trovarti brutte sorprese per colpa della gestione di null, stringa vuota, uno spazio o cose simili, quindi la clausola per visualizzare i messaggi diventerebbe più semplicemente
WHERE approvato = "si"