Совместное использование одной базы данных с несколькими приложениями
У нас есть приложение (продукт), которое использует несколько клиентов (одного и того же предприятия), которые имеют одинаковые функции и данные. В настоящее время у нас есть каждая база данных (MongoDB) для каждого приложения (Angular +. NET) для каждого клиента.
e.g.
Client1 - Database1, Application1
Client2 - Database2, Application2
и так далее. Все приложения размещены в Azure облаке, а развертывание базы данных - в MongoDB Atlas Cloud.
Теперь у нас есть требование объединить всю базу данных в единую базу данных, которая является общим местом для всех клиентов для совместного использования. данные. По нашему функционалу так же, как пользовательский модуль, мастер-модуль, бизнес-модуль. Все то же самое, ничего не меняется. Таким образом, Client1, Client2 будут указывать на единую базу данных, и они могут выполнять операцию CRUD. например, коллекция «Пользователь» будет иметь всех пользователей от обоих клиентов, имеющих ключ идентификатора клиента (для клиентского разделения) для дифференциации данных клиента.
Твист : Здесь мы можем иметь одну базу кода приложения или базу кода нескольких приложений, которая указывает на одну базу данных.
Здесь мы передаем данные одного клиента другому клиенту, это бизнес-правило. И если приложение решает больше динамических c бизнес-правил, тогда должна подойти одна база данных с несколькими приложениями.
Причина: Почему нам нужна единая база данных
- Бизнес такой же, клиенты обмениваются данными (частичными данными).
- Для малых предприятий, у которых только 40-50 документов в год, так что это просто избыточно иметь отдельную базу данных - это не идеальный способ создать новую базу данных (сокращение эксплуатационных расходов) и новое приложение для всех, поскольку мы можем легко управлять в одной базе данных.
- Самостоятельная регистрация пользователем Таким образом, нам не нужно настраивать каждую базу данных для каждого Клиента (дороже + обслуживание в будущем). Кроме того, таким образом мы можем установить план подписки для каждого Клиента по каждому документу (экономя затраты на настройке новой базы данных).
- Поскольку все связано в одной базе данных, и легко получить доступ к коллекции в другой модуль и я можем легко объединить результат с нескольких клиентов (что является требованием показать супер-администратора).
- Наличие единой базы данных и совместное использование несколькими приложениями также экономят место и стоимость.
В настоящее время у меня нет проблем с безопасностью.
Среда приложения
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 может очень легко масштабироваться)? Или какая-то другая проблема / проблема, делающая это?
Я видел несколько статей на эту тему, но ничего не помогло. Поскольку я также определяю архитектуру для базы данных и приложения, где данные нескольких клиентов хранятся в одной базе данных и совместно используются несколькими приложениями (путем инкапсуляции функциональности бизнес-уровня в сервисы с единой базой данных для всех целей, которые обычно доступны).
Любая помощь будет оценена !!