Bonjour,

Je viens vers vous car je n'arrive pas à savoir quels système utiliser, j'ai une application avec plusieurs miliers d'utilisateurs et un système de messagerie avec un onglet dans le header, je ne sais pas comment faire apparaitre une notification avec un message en attente de lecture et ne pas forcer des requètes db à chaque affichage de n'importe qu'elle page.

Voici la structure DB: https://i.ibb.co/NnGVwqn/Screenshot-2021-12-08-at-12-46-22.png

1- Je ne sais pas si je fait une fonction dans Entity User avec des LeftJoin pour voir le status d'un message, et si un message n'est pas lu alors return true. Donc dans twig 'app.user.havePendingMessage'

2 - Fonction dans Repository Message que je load dans le header aussi

3 - Je fait une table Message Read ou Notification avec user_id et status 1 / 0 et je vérifie cette table dans le header

4 - Ou un gros tableau avec tous les id des users qui ont une notification en attente de 'Foreach' parcours et vérifie.

Merci pour vos retours

1 réponse


Bonjour,

Je pense qu'un COUNT en filtrant sur "conversation_users.user_id" et "messages.read_at" devrait faire le job.

Après, je ne comprend pas la structure de données de ta partie "messagerie", pourquoi avoir fait 3 tables au lieu d'une seule table "messages" ?