SailsJS - 相关记录与嵌入式集合

时间:2015-06-28 21:27:09

标签: node.js mongodb sails.js waterline sails-mongo

我使用SailsJS / Waterline ORM和Mongo DB。它是一个实时应用程序,所以sails sockets.io pub / sub被大量使用。

我的应用程序中有一些需要多对多和多对一关联的实例。

我非常确定我可以实现与嵌入式集合的多对多关系,但水线关联似乎更清晰(例如,访问publishAdd())。

问题是:连接/链接数据(嵌入式或关联式)的最佳实践(对于我当前的堆栈)是什么?由于其他查询,是否存在关联记录的性能损失?

1 个答案:

答案 0 :(得分:0)

问自己这些问题:

<强> 1。我是否只想创建/阅读这些关联或嵌入式馆藏?

OR

<强> 2。我是否需要对这些集合进行大量更新/删除操作?

  1. 如果您的答案更倾向于Q1,则可以使用嵌入式集合。通过一次只查询一个集合,它们可以更快地访问。它也更容易实现。
  2. <强> BUT

    如果您的答案更倾向于Q2,那么协会就是您所需要的。这种方法有很多好处:

    1. 更新/删除操作不需要更新/删除嵌入其中的所有集合中的嵌入文档。

    2. 由于您大量使用套接字,因此关联将有助于以更有条理的方式通过套接字通知模型的更改。

    3. 每个嵌入式集合都有自己的模型,因此它自己的结构,使代码更有条理,更容易维护,更容易理解。

    4. 如果您在实施过程中发现任何优点和缺点,请随意添加自己的指针。祝你好运!