Выбор идеальной многопользовательской архитектуры для основного приложения ASP.NET - PullRequest
0 голосов
/ 21 сентября 2018

В настоящее время я работаю над приложением, которое будет размещено в Azure.Поскольку не имеет смысла запускать его экземпляр для каждого клиента (вы поймете, почему), это будет решение с несколькими арендаторами.

Если честно: я только начинаюСобираюсь опыт работы с веб-приложениями, поэтому я прошу прощения, если ответ на мой вопрос очевиден.

Вопрос: Какая многопользовательская концепция будет наиболее полезной для моего приложения, учитывая следующие предположения:

  • Многие арендаторы (в идеале сотни или даже больше, мы увидим ...)
  • , состоящие из нескольких учетных записей пользователей на арендатора (<5-10 в большинстве случаев, до 200 на руку, полнуюарендаторы) </li>
  • в основном с небольшими объемами данных (<100 записей в <20 таблицах) </li>
  • изменения в данных происходят несколько раз в день (примерно <50 изменений на пользователя в день)</li>
  • Приложение должно оставаться отзывчивым (конечно)

Мои мысли:

  1. База данных на каждого арендатора: не имеет смысла как БДне будет использоваться много, поэтому не будет экономически эффективнымve вообще
  2. Таблица для арендатора: может быть хорошим решением, угадайте, должно ли это быть достаточно хорошим масштабом?
  3. Столбец клиента внутри сущностей: может быть проблема с масштабированием, верно?Может быть лучше, если использовать charding для идентификатора арендатора?

Я был бы очень признателен за вашу помощь и некоторый "общий опыт", чтобы выбрать не столь болезненный путь.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Хорошее резюме различных моделей можно найти здесь:

https://www.linkedin.com/pulse/database-design-multi-tenant-applications-dharmendar-kumar/ enter image description here

0 голосов
/ 21 сентября 2018

Исходя из моего опыта работы с Azure, я бы порекомендовал CosmosDB со следующими параметрами:

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

Cosmos DB имеет много преимуществ, таких как шардинг, глобальное распределение, производительность, модели свободы согласованности, а такжехорошая поддержка sql.

...