NoSQL - встраивает документ, я также хочу сослаться на хороший шаблон - PullRequest
0 голосов
/ 17 января 2019

Требуется консультация по встраиванию NoSQL (MongoDB) против справочного вопроса ...

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

У меня будет коллекция отдельных документов ЧЕЛОВЕКА.Я буду делать КОМАНДЫ из небольших групп этих ЛИЦ, поэтому сначала я планирую встроить 3 или 4 ЛИЦА в один документ КОМАНДЫ.Будет больше операций по поиску КОМАНД, чем вставок, поскольку перед тем, как вставить новую КОМАНДУ, я хочу убедиться, что она еще не существует, исходя из ЛИЦ в команде.

Я будузатем имейте ДЕЯТЕЛЬНОСТЬ, в которой участвует КОМАНДА. Я думаю, что я буду встраивать документ КОМАНДЫ (с уже встроенными ЛИЦАМИ) в документ ДЕЯТЕЛЬНОСТИ.Когда я ищу для поиска и отображения всех активных событий ACTIVITY, происходящих в каком-либо месте, я также хочу иметь возможность легко увидеть, какие КОМАНДЫ и ЛИЦА уже принимают участие.

Как только вы примете участиеКОМАНДЫ, эта КОМАНДА никогда не изменится, и эта КОМАНДА со временем примет участие более чем в одной ДЕЯТЕЛЬНОСТИ.

Я стараюсь избегать постоянного присоединения ACTIVITY к TEAM и PERSON для выполнения поиска, поэтому я делаю вложение, но я также хочу иметь возможность, если человек, например, меняет свое имя,чтобы убедиться, что изменение имени обновляется по всем направлениям должным образом.Считается ли разумной практикой включать исходные идентификаторы ObjectID во внедренную информацию, чтобы у меня была возможность пойти и сделать то, что по существу равнозначно ссылочным обновлениям в будущем?Это простой ответ, если я ношу свою шляпу SQL, но в этом случае я не уверен, что это лучший способ подойти к этому.

Спасибо за ваш совет!

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