Рефакторинг документов в базе данных NoSQL - PullRequest
4 голосов
/ 15 декабря 2010

Я немного изучаю преимущества использования базы данных документов в стиле NoSQL, и одна из моих проблем заключается в том, как справиться с «рефакторингом» данных в случае необходимости.

Придуманный пример изкто-то, кто на самом деле никогда не работал с NoSQL:

Предположим, в MongoDB у нас есть документ с именем User, у которого есть встроенный документ с именем Address, и позже мы решаем, что документ Address должен быть перемещен вновая коллекция.

Каковы возможные подходы к этому, учитывая время простоя, производительность и т. д.?

1 Ответ

3 голосов
/ 20 декабря 2010

Изменения схемы довольно просты, когда у вас нет формально определенной схемы - все, что вам нужно сделать, это обновить свой собственный код, чтобы он мог обрабатывать как старые, так и новые документы, обычно путем включения как старых, так и новых полей и перемещения данных от старого к новому либо под нагрузкой, либо перед сохранением в зависимости от ситуации.

Поскольку между кодом и базой данных не будет конфликтов версий данных, простоя нет, и достаточно просто вызвать существующий код загрузки / сохранения для всех документов, если вы хотите выполнить полную миграцию и удалить поддержку для старые документы.

Изменить индексированные свойства немного сложнее, но все же проще, чем вносить изменения в схему SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...