2011-05-15 5 views
26

Quel serait l'équivalent d'ERD pour une base de données NoSQL telle que MongoDB?Equivalent de ERD pour MongoDB?

+0

Je suppose que ma question devrait être révisée: est-il un outil pour concevoir le schéma d'une base de données MongoDB? –

Répondre

2

Je ne connais aucun moyen standard de schématiser un "schéma" orienté document. Je suis sûr que vous pourriez utiliser une ERD pour mapper vos schémas, mais comme les bases de données de documents ne supportent pas vraiment - ou surtout imposent - les relations entre les données, elles seraient seulement aussi utiles que votre code a été discipliné appliquer ces relations en interne.

1

Vous pouvez simplement utiliser un diagramme de classes UML à la place.

21

Il semble que vous avez demandé un similar question on Quora.

Comme mentionné ici, la DRE est simplement un mappage des données que vous avez l'intention de stocker et les relations entre ces données.

Vous pouvez toujours faire une ERD avec MongoDB car vous voulez toujours suivre les données et les relations. La grande différence est que MongoDB n'a pas de jointures, donc quand vous traduisez la ERD dans un schéma réel, vous devrez prendre des décisions spécifiques pour implémenter les relations.

En particulier, vous devrez prendre la décision "embed vs. reference" pour décider comment ces données seront réellement stockées. Les relations sont toujours autorisées, mais pas appliquées. La plupart des wrappers de MongoDB fournissent des recherches dans les collections pour en extraire une partie de la complexité.

Même si MongoDB n'applique pas de schéma, il n'est pas recommandé de procéder complètement au hasard. Modéliser les données que vous prévoyez avoir dans le système est toujours une très bonne idée et c'est ce que la DRE vous fournit.

Donc, je suppose que l'équivalent de l'ERD est the ERD?

2

J'ai réfléchi à la même question pendant un certain temps. Et j'en suis arrivé à la conclusion suivante: Si les bases de données NoSQL sont généralement schémaless, vous n'avez pas de 'schéma' à illustrer dans un diagramme. Par conséquent, je pense que vous devriez adopter une approche «par exemple». Vous pourriez dessiner des mindmaps illustrant comment vos données apparaîtraient lorsqu'elles sont stockées dans une base de données NoSQL telle que MongoDB. Et comme ces bases de données sont très dynamiques, vous pouvez également créer des mindmaps dérivés pour montrer comment les données d'aujourd'hui pourraient évoluer dans le temps.

Jetez également un coup d'œil à ce sujet.

Confusion about NoSQL Design