SaaS, мультитенант (общая схема) - одна таблица или две? - PullRequest
1 голос
/ 06 июля 2011

Я создаю мультитенантную базу данных (общую схему) для приложения SaaS.Приложение позволит подписавшейся компании (арендатору) сотрудничать с другими компаниями (учетными записями, такими как поставщики, деловые партнеры, клиенты и т. Д.).Пользователи будут связаны как с арендатором, так и с аккаунтами.

Вот мой вопрос : с точки зрения дизайна, можно ли поместить арендаторов и учетные записи в одну таблицу?Я думаю «да», потому что компания - это компания, независимо от того, являются ли они арендатором или аккаунтом.Кроме того, я думал о расшифровке арендатора с помощью поля, такого как is_tenant (Boolean), и, возможно, поместил информацию об арендаторе в отдельную таблицу.Вот предлагаемая схема:

  • компаний (company_id, is_tenant, имя, адрес и т. Д.)
  • пользователей (user_id, имя, адрес электронной почты, имя пользователя, пароль и т. Д.)
  • company_users (company_id, user_id)
  • tenant_information (company_id, billing_address, billing_state и т.было бы f_keys для таблицы компаний]

Я прочитал статью MS, Многопользовательская архитектура данных , и, несмотря на свою полезность, в ней не хватало ответа.

Будем весьма благодарны за любые дополнительные мысли / комментарии / подводные камни, касающиеся этой схемы.

Заранее спасибо.

1 Ответ

0 голосов
/ 07 июля 2011

Я также согласен с этим ... если все свойства одинаковы, то нет необходимости создавать другую таблицу (контракт данных) для этого .

Мы также используем что-то в этом роде.В рамках SAAS вам всегда нужно быть осторожным при создании таблиц, иначе потребуется много усилий для рефакторинга и миграции.

У меня есть вопрос!Не могу увидеть любую таблицу "Company_Information", в которой будет указана специфическая информация о компании (которые не являются вашими арендаторами)

...