Эквивалент ERD для MongoDB? - PullRequest
38 голосов
/ 15 мая 2011

Что будет эквивалентно ERD для базы данных NoSQL, такой как MongoDB?

Ответы [ 4 ]

28 голосов
/ 16 мая 2011

Похоже, что вы задали аналогичный вопрос по Quora .

Как уже упоминалось, ERD - это просто отображение данных, которые вы намереваетесь хранить, и отношения между этими данными.

Вы можете сделать ERD с MongoDB, так как вы все еще хотите отслеживать данные и отношения.Большая разница в том, что MongoDB не имеет соединений, поэтому, когда вы переводите ERD в реальную схему, вам нужно будет принять некоторые конкретные решения относительно реализации отношений.

В частности, вам нужно будет сделать Решение "Embed vs. Reference" при принятии решения о том, как эти данные будут на самом деле храниться.Отношения по-прежнему разрешены, просто не соблюдаются.Многие из оболочек для MongoDB фактически обеспечивают поиск по коллекциям, чтобы абстрагировать некоторые из этих сложностей.

Даже несмотря на то, что MongoDB не применяет схему, не рекомендуется выполнять ее произвольно.Моделирование данных, которые вы ожидаете получить в системе, все еще является хорошей идеей, и именно это предоставляет вам ERD.

Так что я думаю, что эквивалент ERD равен ERD ?

2 голосов
/ 11 апреля 2013

Я уже давно думаю об этой проблеме.И я пришел к следующему выводу: если базы данных NoSQL, как правило, не содержат схем, на самом деле у вас нет «схемы» для иллюстрации на диаграмме.

Таким образом, я думаю, что вы должны использовать «примерный» подход,Вы могли бы нарисовать некоторые карты разума, иллюстрирующие, как ваши данные будут выглядеть при хранении в базе данных NoSQL, такой как MongoDB.

И так как эти базы данных очень динамичны, вы также можете создать некоторые производные карты разума, чтобы показать, как сегодняшние данные могутразвиваться во времени.

Взгляните и на эту тему.

Путаница с NoSQL Design

2 голосов
/ 15 мая 2011

Я не знаю стандартных средств построения диаграмм, ориентированных на документы.

Я уверен, что вы могли бы использовать ERD для сопоставления ваших схем, но поскольку базы данных документов не поддерживают (или, что более важно, обеспечивают) взаимосвязи между данными, это будет полезно только для того, чтобы ваш код был внутренне дисциплинированным навязывать такие отношения.

1 голос
/ 15 мая 2011

Вместо этого вы можете просто использовать диаграмму классов UML.

...