我在couchdb中建模文档生成系统。它可以从可管理的文档片段中自动生成提案和演示文档。
就像Basecamp一样,它非常简单地分解为每个帐户的自包含数据。每个帐户都有多个用户,项目,文档等。但是,帐户之间不应共享任何内容。
我可以看到两种方法:
在我看来,第一种方法在概念上是合理的,并且可能具有安全性和分区优势。但是,在我看来,限制一些跨数据库数据查询(我现在没有用例,但你永远不知道......)并且更新视图可能需要大量的写入。
有没有经历过这种决定的人有什么建议吗?
答案 0 :(得分:1)
这是对情况的准确总结,我认为没有银弹答案。这完全取决于您在整个用户群中需要信息或报告的可能性。
我想提醒你两件事:
业务应用程序很快就需要运行您在构建软件时从未考虑过的报告。当客户有五个账户并且他坚持你的总费用不是他们应该是什么时,你会做什么?这些报告的一个特点是您通常需要尽快使用它们。
但是,您始终可以使用复制将所有数据库合并到一个巨大的数据库中(即使在单独的计算机上),以便在该数据库上运行报告。如果您的钥匙没有碰撞,那将节省您的一些努力,但一般来说,您可以使这项工作。