2

有很多帖子讨论关系与文档数据库,但是它们都很通用。

我想通过一个具体的例子来了解它们的区别。

假设我们正在构建另一个面向 Scrum 的项目管理 Web 应用程序。

虽然我们想尝试一种新技术,但我们不想为了做一些炒作的新事物而牺牲设计并增加整体复杂性。我们希望做出正确的决定,即使这意味着使用旧技术。

所以,想想PivotalTracker。我们将存储项目、故事、故事评论、可能是罕见的附件,可能还有子任务(故事拆分为实际任务)。

也支持迭代,因此每个任务实际上都属于一个项目并且可以在迭代中。在迭代内部,任务需要按特定顺序排列。用户可以通过上下拖动来重新排列故事。

对于每个故事,我们还希望使用单独的时间条目来跟踪花费在其上的时间。

我可能想生成报告,但没有什么太花哨的(烧毁,可能与时间有关)

您将使用哪个数据库,关系数据库还是文档数据库?还是其他?为什么?

你会如何设计它的结构?例如,如果您要使用文档数据库,您会完全规范化吗?

4

1 回答 1

0

NoSQL 和关系数据库之间的基本权衡在于报告功能。对于关系数据库,这是通过集合操作完成的,并且关系数据库通常针对报告进行了很好的优化。这需要严格的模式,以便数学正确运行。使用 NoSQL 数据库,这是通过 MapReduce 完成的,而分布式计算和灵活的模式阻碍了这一点。本质上,使用 NoSQL,您的报告始终是专门构建的,临时报告几乎不存在。出于这个原因,我喜欢这样的想法,即您应该始终从 RDBMS 开始,然后根据需要添加 NoSQL 附件。

对于项目管理来说尤其如此,企业所有者可能希望不时提出新的报告。

于 2013-03-23T01:11:43.080 回答