Отношения и ссылки в Монго БД - PullRequest
3 голосов
/ 19 марта 2012

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

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

thread: {id: xxxxx, users:[{id:user01, permission: write, discovery: non}, {id:user02, permission: read, discovery: GroupA}]}

Таким образом, пользователь может быть добавлен с индивидуальным разрешением или с разрешения, предоставленного группе, в которую он входит. Обнаружение будет указывать, был ли пользователь добавлен индивидуально или как группа.

Мне интересно, будет ли это наилучшим способом настройки Mongo для такого рода системы разрешений, а также как я на самом деле определяю эту схему с помощью Mongoose? Я думаю, что было бы быстрее всего встроить все эти аспекты в каждый поток.

...