Я создаю приложение для мультитенантных рельсов, которое использует общую базу данных, в которой данные передаются по всем областям для каждой учетной записи (аналогично Basecamp 3 ), а не с отдельными таблицами и поддоменами. Подход, который я использую, описан здесь .
Каждая учетная запись будет иметь свои собственные данные (например, продукты, инвентарь) и множество пользователей с различными ролями (например, владелец учетной записи, сотрудник, клиент и т. Д.). Я использую Распродажа для регистрации пользователя и входа в систему.
Похоже, есть два подхода, которые я мог бы использовать при моделировании приложения, подобного этому:
- Владелец аккаунта регистрируется и создает свой аккаунт, например, при создании профиля. Я бы создал учетную запись через вложенные поля в форме регистрации. Все наследуется от владельца учетной записи, как это ...
- Или, когда новый пользователь регистрируется, новая учетная запись создается и связывается с этим пользователем (должно ли это произойти с обратным вызовом?). Все (например, продукты и другие пользователи, такие как сотрудники или клиенты) наследуются от учетной записи, а не от владельца учетной записи. Владелец учетной записи - это просто еще один пользователь, который принадлежит учетной записи.
Кажется, вариант 2 - более простое решение, но я заблокирован тем, как создать Учетную запись, когда новый пользователь регистрируется через Распродажу. Я подробно рассмотрел эту проблему здесь , но меня беспокоит то, что способ моделирования моего приложения с помощью Варианта 2 не идеален.
Какой из этих подходов будет наиболее прост в настройке и обслуживании? Или есть другой способ смоделировать это, что мне не хватает?
Поскольку я бы в конечном итоге хотел, чтобы на сайте было несколько пользователей, являющихся клиентами, должен ли я использовать подход к использованию поддоменов (например, Shopify?).