Один клиент на Коллекцию в MongoDB - PullRequest
1 голос
/ 03 мая 2019

Я работаю над многопользовательской системой корпоративного уровня, и мы обсуждаем, как разделить нашу MongoDB, и я читаю, как это сделать, но у меня есть несколько вопросов, если здесь есть эксперт, который может мне помочь.Подчеркну: я прочитал об этом и попытался найти информацию, но он не смог ответить на мой вопрос (или мой google-fu не дал мне результата).

Вопрос 1:Один клиент на коллекцию.

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

Моя идея состоит в том, чтобы ограничить максимум коллекций в базе данных X (50? 80? 30? Какое-то крутое число) и использовать несколько экземпляров базы данных, но не один на клиента.Это связано с экономией, я хочу нажать на цену за арендатора и, таким образом, поместить несколько арендаторов в одну базу данных и поместить каждого арендатора в коллекцию, чтобы создать хорошее масштабирование коллекций.Насколько я понимаю, когда я читаю документацию по БД Mongo, мой сценарий, описанный выше, будет в порядке, пока я внимательно слежу за количеством коллекций в каждой базе данных.Это даст мне хорошее распространение информации по различным коллекциям, таким образом, используя возможности масштабирования MongoDB, сохраняя при этом стоимость приемлемой.Строка подключения к различным базам данных не будет большой проблемой, я могу справиться с этим достаточно просто.

Я бы нашел вышеописанный сценарий проще, чем разделение клиентов с customer_id и распространение информации в другую коллекцию на основе чего-то еще..

Мои рассуждения все еще неверны?Если да - почему?Где моя логика подводит меня?

Вопрос 2: (Этот вопрос действителен только в том случае, если ответ на вопрос 1 «нет, нет, вы правы» :)) Если я сейчас использую приведенный выше сценарий и у меня естьнапример, несколько клиентов, представляющих собой сеть магазинов.Допустим, IKEA (у них много магазинов), и у вас есть генеральный менеджер, который нуждается в информации от всех арендаторов IKEA. Мне нужно было бы пойти в несколько коллекций, чтобы найти общую статистическую информацию, это проблема?Я уже думал о том, чтобы поместить определенных клиентов в одну конкретную базу данных для них (например, IKEA или другие сети), имея в виду, что если их меньше 100, то мне «нужно» только просмотреть одну базу данных, но мне нужно получить информацию из нескольких разных коллекций., это проблема?

Я знаю, что есть несколько ссылок на похожие вопросы, например:

Каков рекомендуемый подход к многопользовательским базам данных в MongoDB?

https://web.archive.org/web/20140812091703/http://support.mongohq.com/use-cases/multi-tenant.html

https://azure.microsoft.com/en-us/blog/new-multi-tenant-patterns-for-building-saas-applications-on-sql-database/

но я чувствую, что им не хватает ответа на этот вопрос.

Надеюсь, вы понимаете разницу вмой вопрос.Большое спасибо!

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