首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有用户自定义字段的Rails多租户SAAS应用程序

具有用户自定义字段的Rails多租户SAAS应用程序
EN

Stack Overflow用户
提问于 2013-09-13 10:19:50
回答 2查看 547关注 0票数 0

我们正在构建一个SAAS应用程序。我们需要允许客户定制特定模型的字段。它们应该能够添加或删除字段。这个应用程序基本上是一个资产管理,客户应该能够定制资产的属性。

我们有关于资产的桌子。这些表有多个属性表,如warrantyvendormaintenance等。

代码语言:javascript
复制
class Computer < ..
 has_one :warranty
 has_one :vendor
end

我们有默认的属性集,但是客户应该能够修改字段。

我们如何做到这一点?

好的,这是我所知道的。对于多租户,我们可以使用作用域,或多个dbs或可怕的PostgreSQL模式。但是,我们如何为每个客户实现自定义字段。

我们该去找NoSQL吗?或者我们应该对基本表使用关系数据库管理系统,对属性表使用NoSQL?

对于具有此需求的可伸缩SAAS应用程序,正确的组合、解决方案或体系结构是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-13 12:08:05

这取决于用例,您有很多选择。但是,在我看来,如果可能的话,最好避免同时使用两种类型的db。

如果您没有使用PostgreSQL,并且不需要对这些属性进行大量查询,那么ActiveRecord serialize可以提供帮助。它利用文本字段存储序列化哈希和数组。嵌套可接受,速度较慢。

如果所有的属性都是一个级别的键/值对,比如说,保修期:18个月,供应商: 123,那么"hstore“是一个很好的选择,内置在PostgreSQL中。

"hstore“是灵活和快速的,但不适合嵌套散列。有一个很棒的宝石在处理这个问题:https://github.com/diogob/activerecord-postgres-hstore

如果嵌套散列,PostgreSQL "JSON“字段类型可能会有所帮助。http://www.postgresql.org/docs/devel/static/functions-json.html --这是新的,我以前没有用过,听说它更稳定,更实用。

我认为这些选择应该足以解决你的问题。如果他们仍然做不到,也许你可以考虑MongoDB。

票数 2
EN

Stack Overflow用户

发布于 2013-09-13 10:25:57

你绝对应该像NoSQL一样喜欢MongoDB。用户、概要文件等需要事务处理的基本表应该放在RDBMS中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18783928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档