Je ne peux pas trouver « meilleure » solution pour le problème très simple (ou pas très)MongoDB: utilisateurs intégrés dans les commentaires
ont mis en classique des données: les messages qui sont attachées aux utilisateurs, les commentaires qui sont attachées à la poste et à l'utilisateur.
Maintenant, je ne peux pas décider comment construire régime/classes
Sur le chemin est de stocker user_id commentaires à l'intérieur et à l'intérieur.
Mais que se passe-t-il quand j'ai 200 commentaires sur la page?
Ou quand j'ai N messages sur la page?
Je veux dire qu'il devrait y avoir 200 demandes supplémentaires à la base de données pour afficher les informations utilisateur (comme le nom, avatar)
Une autre solution consiste à intégrer des données utilisateur dans chaque commentaire et chaque message. Mais d'abord -> il est énorme surcharge, deuxième -> système de système est corrompu (en utilisant mongoalchemy), troisième> utilisateur peut changer ses informations (comme avatar). Et quoi encore? Comme je comprends l'opération de mise à jour sur d'énormes collections de commentaires ou de messages n'est pas simple opération ...
Que suggéreriez-vous? Est-ce que 200 demandes par page à mongodb est OK (doit viser la performance)?
Ou peut-être que je suis juste manque quelque chose ...
Actualy pour le moment mes commentaires juste comme ça, dans une collection séparée. La seule différence, je stocke post_id à l'intérieur du commentaire et non un tableau de commentaires à l'intérieur de la poste. Donc, quand le poste est lu, je fais une demande supplémentaire pour aller chercher les commentaires. Juste quelques questions pour être sûr de ce que vous voulez dire: 1) Avec votre schéma, cette requête devrait également être faite (en utilisant $ in au lieu de find par post_id)? 2) Est-ce que je comprends bien, que vous proposez d'analyser le tableau de commentaires qui devrait être affiché, de collecter les user_id's, puis de demander à tous les utilisateurs de $ supplémentaires? Donc, le total est de 3 demandes faites, peu importe le nombre de commentaires? – Tigra
J'ai édité ma réponse pour clarifier. 'Commentaire' a maintenant un' PostId', ce que je pense est mieux. J'avais peur que votre schéma actuel soit basé sur l'intégration. Donc 1) non, "$ in" n'est pas requis, la requête standard est meilleure. 2) oui, vous devrez collecter des identifiants d'utilisateur uniques à partir des commentaires, puis récupérer ces utilisateurs, puis créer des modèles de vue à partir des (commentaires, utilisateurs) -paires. Facile avec LINQ/.NET, mais peut être difficile dans d'autres langues. Le nombre de requêtes est alors constant, correct. – mnemosyn