u_nickname c'est le pseudo de l'utilisateur : on ne peut donc supprimer cette colonne, elle est essentielle. Ensuite, le p_nickname, c'est le pseudo utilisé... En cas de suppression de l'utilisateur & passage de ses messages en invité, ou pour les invités d'ailleurs, ce qui permet d'éviter le "Visitor" (Invité, ce que tu veux...) banal pour un visiteur, et permet ainsi de le démarquer des autres.
Ensuite les deux autres, ca fait un peu redondant, mais ca permet de sauvegarder des jointures... Par exemple, pour avoir juste le dernier message d'un forum, on a un accès direct à l'id du dernier post, sa date, et l'auteur.
Mais puisqu'il faut avoir quand meme une jointure, je pense également que f_last_p_nickname est redondant...