组合流星收藏的最佳方式

时间:2014-05-30 19:00:49

标签: mongodb meteor

我正在处理的Meteor项目有多个集合:项目传感器读数。从关系角度看,用户有很多项目项目有很多传感器传感器 has_many 读数

Meteor内组织此活动的最佳方式是什么?现在我创建了三个离散集合, Sensors Readings 集合中的每个项目都有一个“”字段,其中{{1 _id将它与父级相关联。

我不确定这是否是最佳方式,另一种方法是拥有一个包罗万象的集合“ Projects ”,其中包含有关传感器和读数的所有信息它。向项目添加新的 Sensor 时,您需要做的就是将新实例化的 Sensor 对象附加到 Project.Sensors 数组

您怎么看?

1 个答案:

答案 0 :(得分:0)

这完全取决于您的使用案例。您的应用会更多写入或读取重量?

您现在设置它的方式称为标准化方式。您没有冗余数据,数据与其他集合中的其他数据相关。 (就像SQL中的表连接一样)。更新数据时,只需更新它所属的小记录。缺点是,由于所有不同的数据库查询,您需要读取大量数据需要更长的时间。

您建议的替代方法称为非规范化,您可以将冗余数据添加到记录或将集合分组到更大的集合中。这样做的好处是,在读取数据时,您不需要那么多的数据库查找,因为您需要的所有数据大部分都在一条记录中。另一方面,写入数据库变得更加复杂,因为您不需要更新一个小记录而是一个或多个大记录。

无论哪种方式,都使用这两种方法,它只取决于用例以及您希望应用程序执行的方式(更多读取或更多写入性能)。