Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създадете база данни с множество наематели със споделени структури на таблици?

Има обаче някои компании, разбира се, които се опасяват, че техните данни може да са компрометирани, така че ние оценяваме други решения.

Това е жалко, тъй като клиентите понякога страдат от погрешно схващане, че само физическата изолация може да предложи достатъчно сигурност.

Има интересна статия в MSDN, озаглавена Архитектура на данни с множество наематели , което може да искате да проверите. Ето как авторите се обърнаха към погрешното схващане за споделения подход:

Често срещано погрешно схващане е, че само физическата изолация може да осигури подходящо ниво на сигурност. Всъщност данните, съхранявани с помощта на споделен подход, също могат да осигурят силна сигурност на данните, но изисква използването на по-сложни модели на проектиране.

Що се отнася до технически и бизнес съображения, статията прави кратък анализ къде даден подход може да е по-подходящ от друг:

Броят, естеството и нуждите на наемателите, които очаквате да обслужват, засягат по безразличен начин вашето решение за архитектура на данни. Някои от следните въпроси може да ви отклонят към по-изолиран подход, докато други може да ви насочат към по-споделен подход.

  • Колко бъдещи наематели очаквате да се насочите? Може да не сте в състояние да оцените бъдещата употреба с авторитет, но помислете по отношение на порядъка на величината:създавате ли приложение за стотици наематели? хиляди? Десетки хиляди? Повече ▼? Колкото по-голяма очаквате да бъде вашата база наематели, толкова по-вероятно е да искате да обмислите по-споделен подход.

  • Колко място за съхранение очаквате да заемат данните на средния наемател? Ако очаквате някои или всички наематели да съхраняват много големи количества данни, подходът с отделна база данни вероятно е най-добрият. (Всъщност, изискванията за съхранение на данни може да ви принудят да приемете модел на отделна база данни. Ако е така, ще бъде много по-лесно да проектирате приложението по този начин от самото начало, отколкото да преминете към подход с отделна база данни по-късно.)

  • Колко едновременни крайни потребители очаквате да поддържа средният наемател? Колкото по-голям е броят им, толкова по-подходящ ще бъде по-изолиран подход, за да отговори на изискванията на крайния потребител.

  • Очаквате ли да предложите услуги с добавена стойност за всеки наемател, като например възможност за архивиране и възстановяване за всеки наемател? Такива услуги са по-лесни за предлагане чрез по-изолиран подход.

АКТУАЛИЗИРАНЕ: Допълнително за актуализация за очаквания брой наематели.

Този очакван брой наематели (10k) трябва да изключи подхода с множество бази данни за повечето, ако не и за всички сценарии. Не мисля, че ще ви хареса идеята да поддържате 10 000 копия на база данни и да трябва да създавате стотици нови всеки ден.

Само от този параметър изглежда, че подходът със споделена база данни с една схема е най-подходящият. Фактът, че ще съхранявате само около 50 Mb на наемател и че няма да има добавки за наемател, прави този подход още по-подходящ.

Статията на MSDN, цитирана по-горе, споменава три модела на сигурност, които разглеждат съображенията за сигурност за подхода на споделената база данни:

Когато сте уверени в мерките за безопасност на данните на приложението си, ще можете да предложите на клиентите си Споразумение за ниво на обслужване което осигурява силни гаранции за безопасност на данните. Във вашия SLA, освен гаранциите, бихте могли да опишете и мерките, които ще предприемете, за да гарантирате, че данните няма да бъдат компрометирани.

АКТУАЛИЗАЦИЯ 2: Очевидно момчетата от Microsoft преместиха/направиха нова статия по тази тема, оригиналната връзка я няма и това е новата:Модели за наемане на SaaS база данни с множество наематели (поздравления за Шай Керер)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MIN() – Намерете минималната стойност в колона в MySQL

  2. Изчислете процентил от честотата в MySQL

  3. Как да получа последния вмъкнат идентификатор на MySQL таблица в PHP?

  4. ИЗХОДНА клауза в MySQL

  5. Как да получите остатък с помощта на MOD() в PostgreSQL, MS SQL Server и MySQL