2009-04-04 5 views
7

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

Ссылки на технические документы, которые распространяются на эту тему, очень ценятся.

ответ

7

Для базы данных:

А. расставит все на той же базе данных, поместите столбец tenant_id на ваших столах

Плюсы: Легко сделать

Минусы: Очень склонны к ошибкам: легко просачивать данные от одного арендатора к другому.

B. Поместите все на той же базе данных, но поставить каждого арендатора в своем собственном пространстве имен (PostgreSQL называет их схемы)

Плюсы: Обеспечивает лучшие утечки данных защиты, чем вариант A

Минусы: Не поддерживаемых всеми базами данных. AFAIK PostgreSQL и Oracle поддерживают его.

C. Установка одна базы данных на арендатор

Плюсы: Абсолютно нет шансов данных протекающих от одного арендатора к другим

Минусов: Создание новых арендаторов является более сложным. Подключение к базе данных дорого.

Я только выучил вышеупомянутые идеи от Гая Наора. Вот ссылка на его презентацию: http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html

+0

В #B, все схемы поддержки баз данных, но с различной терминологией. В MySQL, схема и база данных являются синонимами. MSSQL также поддерживает схемы. Наше многопользовательское приложение в производстве работает с ~ 4000 (на данный момент) баз данных/схем MySQL. –

Смежные вопросы