Как реализовать мультитенантный MongoDB - PullRequest
2 голосов
/ 14 апреля 2011

Я хочу внедрить систему MongoDB, которая имеет 3 основных коллекции (Люди, Опросы, Ответы) и несколько второстепенных коллекций (поиск и т. Д.).Однако система будет мультитенантной, поэтому мне понадобится набор коллекций для каждого арендатора.У меня вопрос, должен ли я иметь отдельные БД для каждого арендатора или у меня должна быть одна БД.С одним БД я должен назвать свои коллекции следующим образом: tenantname_people, tenantname_surveys и т. Д., Или есть лучший способ структурировать / назвать мои коллекции?Мне нравится подход единой базы данных, потому что тогда у меня может быть коллекция арендаторов с подробной информацией о каждом арендаторе, его пользователях и т. Д., Которые будут полезны для поддержки.У меня будет довольно много индексов, и я буду следить за лимитом в 24 КБ для пространств имен.24k кажется высоким, но эти вещи могут преследовать вас.

Любые полезные комментарии будут с благодарностью.Спасибо.

Ответы [ 2 ]

3 голосов
/ 14 апреля 2011

Я бы рекомендовал иметь отдельную БД для каждого арендатора.Это может помочь вам и с шардингом.Вы можете увеличить ограничение пространства имен, если хотите использовать аргумент --nssize.

0 голосов
/ 14 апреля 2011

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

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

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