|
|
1
48
我有同样的问题要解决,同时也在考虑变化。 由于我有多年创建SaaS多租户应用程序的经验,我还打算根据我以前使用关系数据库的经验选择第二个选项。 在做研究的时候,我在MongoDB支持站点上发现了这篇文章(自从它消失之后又加了回来): https://web.archive.org/web/20140812091703/http://support.mongohq.com/use-cases/multi-tenant.html 他们说要不惜任何代价避免第二种选择,据我所知,这并不是MongoDB特有的。我的印象是,由于数据库设计的特殊性,这适用于我研究的大多数nosql数据库(coachdb、cassandra、couchbase服务器等)。 集合(或bucket,或者在不同的dbs中称之为bucket)与rdbms中的安全模式不同,尽管它们充当文档的容器,但它们对于应用良好的租户分离是无用的。我找不到可以基于集合应用安全限制的NoSQL数据库。 当然,您可以使用mongodb基于角色的安全性来限制数据库/服务器级别的访问。( http://docs.mongodb.org/manual/core/authorization/ ) 我建议在下列情况下选择第一个选项:
如果出现以下情况,我会选择变体3:
如果你发布更多关于你申请的细节,也许我可以给你更详细的建议。 |
|
|
2
8
我在这个链接的评论中找到了一个很好的答案: http://blog.boxedice.com/2010/02/28/notes-from-a-production-mongodb-deployment/ 基本上,选择2似乎是最好的方法。 引用David Mytton的评论:
|
|
|
3
2
有 a reasonable article on MSDN about multi-tenant data architecture 你可以参考一下。本文涉及的一些关键主题:
还涉及了软件即服务(saas)配置的一些模式。 另外,值得一试的是 an interesting write-up from the SQL Anywhere guys . 我个人的看法-除非你确定强制安全/信任,否则我会选择选项3,或者如果可伸缩性问题至少禁止回退到选项2。也就是说…我不支持MongoDB。我很紧张使用一个共享的“模式”-但我会很高兴遵从更有经验的从业者。 |
|
|
4
1
我会选择2。 但是,您可以设置mongod.exe命令行选项——smallfiles。这意味着一个数据块的最大文件大小将是0.5GB,而不是2GB。我用Mongo1.42测试了这个。因此,选择3并非不可能。 |
|
|
5
0
虽然这里讨论的是nosql,主要是mongodb,但是 Citus 正在使用PostgreSQL并构建分布式/分片多租户数据库。 我们的 use-case guide 浏览一个示例应用程序,涵盖模式和各种特定于多租户的功能。 对于更多的非结构化数据,我们使用postgresql的jsonb列来存储此类和特定于租户的数据。 |
|
|
6
0
根据我在年的研究 MongoDB. Trucos y consejos. Aplicaciones multitenant. 如果您不知道可以拥有多少租户,则不建议使用该选项,因为可能有数千个租户,而且在分片时会很复杂,还可以想象在单个数据库中有数千个集合……因此,在您的情况下,建议使用选项一。现在如果你要有有限的用户数量,它已经是不同的,是的,你可以使用选项二,因为你认为。 |
|
|
Sam Winston · SaaS体系结构-数据污染 8 年前 |
|
|
bertie · Amazon Cognito多租户最佳方法 8 年前 |
|
|
Righto · Springboot多租户不适用于多线程 8 年前 |
|
|
belnxkkk · spring在运行时添加数据源 8 年前 |
|
|
Lewis Quaife · Firebase-每个客户端的子域 8 年前 |