Совместное использование одной базы данных с несколькими приложениями - PullRequest
0 голосов
/ 21 апреля 2020

Совместное использование одной базы данных с несколькими приложениями

У нас есть приложение (продукт), которое использует несколько клиентов (одного и того же предприятия), которые имеют одинаковые функции и данные. В настоящее время у нас есть каждая база данных (MongoDB) для каждого приложения (Angular +. NET) для каждого клиента.

 e.g. 

     Client1 - Database1, Application1 
     Client2 - Database2, Application2

и так далее. Все приложения размещены в Azure облаке, а развертывание базы данных - в MongoDB Atlas Cloud.

Теперь у нас есть требование объединить всю базу данных в единую базу данных, которая является общим местом для всех клиентов для совместного использования. данные. По нашему функционалу так же, как пользовательский модуль, мастер-модуль, бизнес-модуль. Все то же самое, ничего не меняется. Таким образом, Client1, Client2 будут указывать на единую базу данных, и они могут выполнять операцию CRUD. например, коллекция «Пользователь» будет иметь всех пользователей от обоих клиентов, имеющих ключ идентификатора клиента (для клиентского разделения) для дифференциации данных клиента.

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

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

Причина: Почему нам нужна единая база данных

  1. Бизнес такой же, клиенты обмениваются данными (частичными данными).
  2. Для малых предприятий, у которых только 40-50 документов в год, так что это просто избыточно иметь отдельную базу данных - это не идеальный способ создать новую базу данных (сокращение эксплуатационных расходов) и новое приложение для всех, поскольку мы можем легко управлять в одной базе данных.
  3. Самостоятельная регистрация пользователем Таким образом, нам не нужно настраивать каждую базу данных для каждого Клиента (дороже + обслуживание в будущем). Кроме того, таким образом мы можем установить план подписки для каждого Клиента по каждому документу (экономя затраты на настройке новой базы данных).
  4. Поскольку все связано в одной базе данных, и легко получить доступ к коллекции в другой модуль и я можем легко объединить результат с нескольких клиентов (что является требованием показать супер-администратора).
  5. Наличие единой базы данных и совместное использование несколькими приложениями также экономят место и стоимость.

В настоящее время у меня нет проблем с безопасностью.

Среда приложения

Database Deployment: MongoDB Atlas Cloud    
Database Size: 500.00MB (can increase upto 100GB)
Index Size: 25.00MB
Total Collections: 120 (max. 180)

App Deployment: Microsoft Azure Cloud
Server-Side Technology: ASP.NET MVC Framework
Client-Side Technology: AngularJS

Мой вопрос : I ' Я собираюсь сделать все приложения, используя только одну базу данных для всего! Будут ли у меня проблемы с масштабируемостью (MongoDB может очень легко масштабироваться)? Или какая-то другая проблема / проблема, делающая это?

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

Любая помощь будет оценена !!

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