2012-11-09 5 views
1

Je travaille sur un projet dans lequel j'entends qu'un grand nombre d'utilisateurs stockent leurs messages dans ma base de données. Ces messages qui consisteront en un mélange de données textuelles et binaires (pensez à un e-mail) auront une relation plusieurs à un avec des utilisateurs individuels. Comme mongo db a une limite de taille de document de 16 Mo pour un document individuel, je pensais que je devrais les associer via un lien.Conception de schéma MongoDb pour système de messagerie

Cela nécessitera deux collectes distinctes, ce qui signifie plus d'allers-retours et de moins bonnes performances. Y a-t-il une alternative à laquelle je ne pense pas?

Répondre

2

Eh bien, il n'y a pas vraiment beaucoup de choix. La liaison ou l'intégration sont les choix standards. Cependant, dans certains cas, il peut être avantageux de mettre en œuvre une approche hybride. Je l'appelle "lots".

L'essence de l'approche est la suivante: vous collez plusieurs messages dans un seul document, tout comme dans l'intégration. Lorsque ce document est sur le point de déborder, vous commencez à écrire dans un second document (et vous avez le premier lien vers le document). De cette façon, vous avez de meilleures performances de lecture en masse qu'avec des documents à liaison unique, mais vous ne pouvez pas les interroger aussi efficacement (j'imagine que vous voudriez interroger plusieurs documents en dehors du paquet, puisque ce sont des messages) . Évaluez vos modèles de requête et choisissez judicieusement.

+0

Est-ce que je dois traverser toute cette liste liée à la recherche dans tous les messages? – secretformula

+0

Cela dépend de ce dont vous avez besoin. –

Questions connexes