2011-01-22 3 views
0

Ищите ссылки на стратегии для хорошего дизайна базы данных с несколькими арендаторами. Есть ли у MySql встроенная поддержка многопользовательских архитектур? Любая помощь/ссылки/ссылки в этом отношении действительно оценены!дизайн базы данных с несколькими арендаторами

+2

Не только 14 вопросов без принятых ответов; также нулевые ответы и нулевые голоса на что угодно (вопрос или ответ). –

ответ

5

MySQL не поддерживает схему, так что вы должны добавить tenant_id для каждой таблицы для общественных таблиц, за исключением. Затем вы должны перезаписать свою библиотеку ORM, чтобы автоматически добавлять «where tenant_id =?, Tenant_id» каждый sql.

Общая информация о многофункциональных приложениях на рельсах.

Rails и MySQL несколькими арендатором Пример

Рельсы и PostgreSQL учебник. Я знаю, что вы хотите MySQL, но это дает вам хорошее представление.

1

Для разработки приложения многопользовательских, у вас есть несколько вариантов для проектирования баз данных

  1. Отдельная база данных: что является наиболее простой, но ресурсоемкой, MySQL будет вписываться в этом но для каждого арендатора вам понадобится новая база данных. Это будет проще для администрирования, таких операций, как резервное копирование и восстановление, и даст вам полную изоляцию данных клиента.
  2. Общая база данных, отдельные схемы. При таком подходе используется один сервер базы данных, но для каждого нового арендатора вам необходимо создать новую схему. MySQL не поддерживает это. Альтернативной СУБД является PostgreSQL. Это решение позволяет наилучшим образом использовать ресурсы и выполнять операции, такие как резервное копирование и восстановление.
  3. Общая база данных, общая схема: как объясняется onurozgurozkan, вам необходимо хранить идентификатор арендатора в каждой записи, так как это общая схема. Этот подход поддерживается MySQL и любой другой СУБД, но очень сложно в таких операциях, как резервное копирование и восстановление, вам нужно разработать некоторые инструменты для достижения этого. Этот подход не рекомендуется, если у вас есть большое количество арендаторов.
2

Мы в Citus создаем базу данных с несколькими арендаторами на основе PostgreSQL. https://www.citusdata.com/blog/2016/12/18/schema-sharding-lessons/ предоставляет некоторую информацию о различных методах очертания для многопользовательской аренды.

Вы также можете прочитать https://www.citusdata.com/blog/2016/08/10/sharding-for-a-multi-tenant-app-with-postgres/, чтобы начать.

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