Comment interroger les discussions en fonction de la présence d'un participant
Énoncé du problème :
Étant donné une base de feu structure de base de données représentant les conversations de chat avec plusieurs participants, comment pouvons-nous interroger efficacement les chats qui incluent un participant ?
Requête actuelle (ne fonctionne pas) :
return this.af.database.list('chats', { query: { orderByChild: 'participants', equalTo: username, // How to check if participants contain username } });
Problèmes liés à la requête actuelle :
Solution recommandée : inverser l'index
Pour optimiser la requête , il est recommandé d'inverser la structure de l'index en aplatissant les données et en remontant les relations de la salle de discussion au niveau de l'utilisateur. Cela implique :
Données révisées Structure :
userChatrooms: { john: { chatRoom1: true, chatRoom2: true }, puf: { chatRoom1: true, chatRoom3: true } }
Requête mise à jour :
ref.child('userChatrooms').child(username)
Avantages de l'index inversé :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!