stenking wrote: ↑06 Feb 2018 04:58
Vladimir Kr. wrote: ↑06 Feb 2018 04:39
это называется альтернативно думаете. Там где нужно foreign keys - в nosql их просто нет, но надо всем об'яснить что они не нужны, атомарности транзакций тоже - "порешаем в коде"!
я не говорю, что все это плохо - но все это "узкоспециализированный инструмент".
Да, именно так. Порешаем в коде. В большенстве случаев foreign keys просто не нужны. В традиционных базах вы бы бы имели таблицы: article, author, journal, comment, article_author, article_journal, article_comment, article_revision, article_reviewers....etc... а в монге свалите в одну коллекцию. И когда вам нужно будет посмотреть сколько статей написал автор вы напишите одну строчку кода. Так же с атомарностью которой обычно достаточно в одном документе -
https://docs.mongodb.com/manual/tutoria ... perations/
Ну и т.д. Все эти вещи дают более простой код, более понятную структуру данных которую удобно гонять через API, быстрые операции, отличный скелинг и многое чего.
Порешаем в коде.
Все эти вещи дают более простой код
Как это может уживаться вместе?
кластерная атомарность, мы ведь про кластер а не сингл, это не
model-data-for-atomic-operations
а вот это:
https://docs.mongodb.com/manual/referen ... e-concern/ -- это появилось в монге 2 года назад
что мы здесь видем:
надо явно указывать количество реплик, тоесть зявленная атомарность будет не на все копии существующие в кластере, а только на указанное количество. Количество надо указывать на каждой операции сохранения.
Еще раз: Монго явно утверждает - данные не будут гарантированно консистентны на всех копиях в кластере если вы не укажите количество копий ("deployment" nodes) во время каждого сохранения!
"более простой код" "в одну строчку" !