Построение SaaS системы - архитектура БД

Рейтинг: 1Ответов: 1Опубликовано: 27.09.2014

Планирую писать ИМ (интернет магазин). Модель магазина будет не коробочной, а SaaS. Среда разработки - php. На данный момент тщательно продумываю всю техническую и функциональную сторону разработки. Передо мной встал вопрос относительно архитектуры данных в бд. Какой из двух приведенных мной ниже вариантов является наиболее оптимальным?

1) Много бд (одна на каждого пользователя).

Плюсы:

  • производительность не падает;
  • скорость доступа к данным не снижается;

Минусы:

  • бывает не удобным администрировать;
  • применение больше 5 бд является затратным ;

2) Одна бд (на всех пользователей).

Плюсы:

  • дешевое применения;
  • удобство производить операции с бд;
  • удобно администрировать;

Минусы:

  • много таблиц;
  • элемент списка;
  • со временем производительность сильно падает;
  • скорость доступа к получаемым данным снижается;

Может быть, кто-нибудь поделится собственным мнением по данному поводу и опишет, почему тот или иной вариант лучше или хуже, либо предложит альтернативу или дополнит по недостающим пунктам. В принципе все построение полей и таблиц я продумал, осталось только разобраться с количеством использования БД. Изначально может показаться, что одной базы достаточно, но ведь нужно предусмотреть все ситуации.

P.S. Информацию о мультитенантности SaaS и о способах построения архитектуры БД читал в открытых источниках, но опять же, здесь все неоднозначно, и хотелось бы услышать как можно больше мнений по данному поводу.

Ответы

▲ 1Принят

Однозначно для каждого пользователя своя БД.

  1. Удобно администрировать. Вы всегда знаете, в какой базе лежат данные какого пользователя. Для удаления/переноса тоже удобней. Также при разрастании БД можно разносить отдельные базы на разные сервера.
  2. Безопасность. При единой базе, взломав одного пользователя, получают доступ ко всем.
  3. Затратность по средствам? Вы на виртуальном хостинге что ли собираетесь размещать систему? Только отдельный сервер (для начала хотя бы VDS), на котором никто, кроме Вас, не будет устанавливать лимиты на количество создаваемых БД.

ИМХО.