2012-01-19 4 views
0

J'ai un fil d'actualité avec des commentaires. Je stocke des commentaires dans MongoDB. Newsfeed pourrait éventuellement devenir très grand à l'avenir, donc j'ai besoin haute vitesse.MongoDB - enregistrement du nom d'utilisateur (modifiable) dans les commentaires - incorporations vs références

comments: [ 
    {user_id: 34, user_name: "John", text: "..."} 
] 

Comme vous pouvez le voir, je stocker les informations sur l'utilisateur, ainsi que les documents de Mongo disent « quand vous avez besoin de vitesse, l'utilisation intègre ».

Mais l'utilisateur peut changer son nom à tout moment. Dans ce cas, le nom de l'utilisateur sous chacun de ses commentaires dans le fil d'actualité serait erroné.

Devrais-je utiliser des références (DBref) à la collection "User" par _id au lieu d'incorporer? Et combien serait-il plus lent? Ce ralentissement est-il assez important pour être inquiet?

Je me demande simplement comment fonctionnent tous les grands réseaux sociaux. Lorsque je change le nom de mon utilisateur, il est instantanément mis à jour dans tous mes messages dans le fil d'actualité.

Répondre

2

Le stockage de DBRefs ne vous apportera aucun avantage par rapport au stockage d'ID utilisateur simples. C'est fondamentalement le même id, seulement avec un nom de collection.

Si vous voulez des lectures efficaces rapides - incorporer.

Lorsque l'utilisateur change son nom, vous pouvez écrire ce fait et ensuite exécuter un travail nocturne qui mettra à jour son nom en cache dans tous les commentaires.

Si vous voulez des mises à jour instantanées de nom - vous devriez faire référence. Mais dans ce cas, vous payez avec un code plus complexe et plus de requêtes à la base de données.

+0

OK mais que pouvez-vous suggérer si je veux voir le nom de l'utilisateur mis à jour sous chacun de ses commentaires? – oyatek

+0

À quelle vitesse voulez-vous que cela se produise? Aussi, relisez ma réponse. Je viens de le mettre à jour :-) –

+0

merci pour votre réponse, maintenant c'est plus clair :) – oyatek

Questions connexes