2016-01-21 95 views
1

我试图弄清楚,构建与用户数据关联的集合的最佳实践是什么(关于响应,查询速度或其他) 例如,什么更好? 或创建额外的集合来保存这些数据,例如: Meteor.UserInfo.user {朋友,位置,以前的订单,等等”)。 谢谢。流星用户集合vs其他集合

回答

1

使用Users集合来存储有关该用户的与其他集合无关的信息。通常这应该在用户文档的顶层,而不是在配置文件中。我期望在配置文件中看到的唯一情况是配置文件信息(而不是,例如,以前的订单列表)。

像以前的订单不应该在那里,因为你可以查询Orders集合来找到它们。出于性能方面的原因,有时可用于对数据进行非规范化处理,但这应该是一个例外,而不是规则。

+0

谢谢,所以如果我有一个仪表板,我想看到所有用户的信息,我将不得不运行与他的Id所有集合的查询。继续收集(usersInfo)所有用户的参考信息并直接使用ref ID查询集合是否有意义?另一种方式? –

+1

这样的非规范化数据是艰苦的工作。例如,每次添加/删除订单时,都需要更新用户。代码更复杂,存在更多的空间。这是没有必要的。唯一有充分理由的是性能增强,以及几乎不需要的仪表板。如果需要,您可以稍后进行denormalise。 – tarmes

+0

明白了。每种方法的回调是一项艰巨而危险的工作。怎么处理用户ID的插入ID? _id:createdBy - uuid? –