开始使用文档数据库,我有一个关于设计决策的问题。我将插入包含多天金融交易的数据。我不确定我是应该让每个交易都是一份单据,还是应该让所有数据都只有一份单据,这将涵盖很多天。
应用程序的主要用途是以多种方式分析数据,包括特定日期和日期范围。
在作出这个决定时有哪些考虑因素?
发布于 2013-12-14 00:23:16
似乎,如果您正在寻找报告和分析基于单个交易的数据(即按product_id,价值,买家,日期等削减),那么理想情况下,这将是文档类型,允许根据需要建立索引。如果你创建的一个文档类型只是一个事务列表,我认为mongo将很难在索引方面为你提供很多帮助。
发布于 2013-12-14 00:43:54
数据库的设计应该反映软件层将要执行的功能。MongoDB应该尽可能少地将结果返回给您的应用程序,因此,以在运行查询时需要尽可能少的重塑的方式对您的数据进行建模将是理想的。当您想要从许多不同的角度处理数据时,这可能会很棘手。根据我的经验,即使是最通用的数据集,也总会有一些字段比其他字段更频繁地被查询。对于财务数据,我猜测这要么是一个时间范围,要么是一个人/组织。这些字段是您希望根据和/或索引对数据进行分组的字段。对于真正通用的数据模型,我可能只会为每个事务创建一个文档,为事务日期降序建立索引(以便更快地返回最近的事务),然后尽可能具体地为所有关键字段建立索引。
https://stackoverflow.com/questions/20571132
复制相似问题