Мы создаем приложение SAAS. Мы должны разрешить клиентам настраивать поля определенной модели. Они должны иметь возможность добавлять или удалять поля. Это приложение в основном является управлением активами, где клиенты должны иметь возможность настраивать атрибуты актива.Rails Multi Tenant SAAS-приложение с настраиваемыми пользователем полями
У нас есть столы для активов. И эти таблицы имеют несколько таблиц атрибутов, как warranty
, vendor
, maintenance
и т.д.
class Computer < ..
has_one :warranty
has_one :vendor
end
У нас есть набор по умолчанию атрибутов там, но клиент должен иметь возможность изменять поля.
Как мы это достигаем?
Хорошо, что я знаю. Для многоуровневости мы можем использовать области действия, или множественные dbs или удивительные схемы PostgreSQL. Но как мы реализуем пользовательские поля для каждого клиента.
Должны ли мы пойти на NoSQL? или использовать RDBMS для базовых таблиц и NoSQL для таблиц атрибутов?
Какова правильная комбинация или решение или архитектура для масштабируемого приложения SAAS с этим требованием?
Спасибо большое! Только то, с чем я столкнулся сейчас:) ... Я поеду с HStore. –