Bonjour à tous,

Je n'ai aucun problème avec les relations ManyToMany dans doctrine2 et plus largement dans Symfony2 mais je rencontre un nouveau cas.

Je développe un forum avec ces entités :"Topic", "Post" et "User".
Je cherche à faire un système de notification pour qu'un utilisateur puisse savoir s'il y a un nouveau message dans un topic déjà lu.

Pour cela, j'ai besoin de faire une relation ManyToMany entre User et Topic et ensuite d'ajouter l'id du dernier post lu pour faire une comparaison avec l'i du dernier post du topic en question :
-> Si id_dernier_post_du_topic > id_dernier_post_lu alors il y a au moins un nouveau message à lire.

J'ajoute également un champs boolean pour que l'utilsateur puisse savoir s'il à déjà participer à ce topic en postant au moins un message.

Ca donnerais la table de jointure suivante :

- user_id (clé étrangère)
- topic_id (clé étrangère)
- post_id (clé étrangère)
- participate (boolean)

Au départ, je voulais créer une nouvelle entité View avec ces différents champs mais finalement, je me rends compte que la clé primaire de cette entité c'est la combinaison user_id/topic_id.
Finalement, c'est simplement une jointure entre User et Topic pour savoir quel User a lu quel Topic puis un ajout de données supplémentaire : post_id et participate.

Quelle est la meilleure solution ? Est-il possible de faire une simple jointure en ajoutant des informations supplémentaires ?

[Edit]
La première idée était la bonne : Créer une nouvelle entité en mettant user_id et topic_id en clé primaire