Веб-приложение с отдельной базой данных для каждой учетной записи - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь создать веб-приложение .Net Core, в котором клиенты создают учетную запись для своей компании, а портал создает отдельную базу данных для этой компании. При этом каждый клиент, который вошел в наше веб-приложение, отделил свои данные от других клиентов. Я думал использовать мультитенантность, но каждая статья, которую я видел, создает свои базы данных, прежде чем они развернут свое приложение. Но мне нужно создать базу данных для нового клиента во время выполнения, чтобы, когда новый клиент создает учетную запись, его база данных создавалась автоматически. Мой первый вопрос: стоит ли использовать мультитенантное веб-приложение? И во-вторых, как мне добиться создания новой базы данных для новых учетных записей во время выполнения? И наконец, если я что-то изменю в своей модели, как я могу опубликовать это во всех базах данных?

1 Ответ

0 голосов
/ 02 ноября 2019

Прежде всего, базы данных могут быть созданы во время выполнения. Например, у вашего приложения регистрации может быть запущен SP, доступ к которому имеет только тот, кто создает БД, однако простое добавление customerID во все таблицы и фильтрация всех результатов по нему будет иметь аналогичный эффект. Можно создать слой упаковки EF, который будет использоваться всеми приложениями, для которого в его конструкторе требуется идентификатор клиента и предоставляются IQueryables, уже отфильтрованные по этому идентификатору.

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