Database design 项目管理web应用程序:关系数据库还是面向文档的数据库?

Database design 项目管理web应用程序:关系数据库还是面向文档的数据库?,database-design,relational-database,document-database,Database Design,Relational Database,Document Database,有相当多的帖子讨论了关系和文档数据库,但是它们都是非常通用的 我想通过一个具体的例子来理解它们的区别 让我们想象一下,我们正在构建另一个面向scrum的项目管理web应用程序 虽然我们想尝试一种新技术,但我们不想牺牲设计,增加总体复杂性,只是为了做一些新的宣传。我们希望做出正确的决定,即使这意味着使用旧技术 所以,想想看。我们将存储项目、故事、故事评论,可能是罕见的附件,也可能是分为实际任务的子任务 还有对迭代的支持,所以每个任务实际上都属于一个项目,可以在迭代中完成。在迭代中,任务需要按照特定

有相当多的帖子讨论了关系和文档数据库,但是它们都是非常通用的

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

让我们想象一下,我们正在构建另一个面向scrum的项目管理web应用程序

虽然我们想尝试一种新技术,但我们不想牺牲设计,增加总体复杂性,只是为了做一些新的宣传。我们希望做出正确的决定,即使这意味着使用旧技术

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

还有对迭代的支持,所以每个任务实际上都属于一个项目,可以在迭代中完成。在迭代中,任务需要按照特定的顺序进行安排。用户可以通过上下拖动来重新排列故事

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

我可能想生成报告,但不要太花哨,可能是与时间有关的东西

您会使用哪个数据库,关系数据库还是文档数据库?还是别的什么?为什么


你将如何设计它的结构?例如,如果要使用文档数据库,是否要进行规范化?

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


在项目管理中尤其如此,在项目管理中,企业主可能希望不时提出新的报告。

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


尤其是在项目管理方面,企业主可能希望不时提出新的报告。

@Omus:请您在句子的开头加上大写字母,好吗?这会使它更容易阅读。@Omus:请您在句子的开头加上大写字母好吗?这将使它更容易阅读。