【问题标题】:SailsJS - Associated records vs Embedded CollectionSailsJS - 关联记录与嵌入式集合
【发布时间】:2015-06-28 21:27:08
【问题描述】:

我正在使用带有 Mongo DB 的 SailsJS / Waterline ORM。这是一个实时应用程序,因此sails sockets.io pub/sub 被大量使用。

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

我相当确定我可以通过嵌入式集合实现多对*关系,但是水线关联似乎更清晰一些(例如,访问 publishAdd())。

问题是:连接/链接数据(嵌入或关联)的最佳做法(对于我当前的堆栈)是什么?由于额外的查询,关联记录是否会影响性能?

【问题讨论】:

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


    【解决方案1】:

    问自己这些问题:

    1.我要创建/阅读这些关联或嵌入的集合吗?

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

    1. 如果您的答案更倾向于 Q1,则可以使用嵌入式集合。它们通过一次只查询一个集合来加快访问速度。它也更易于实现。

    但是

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

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

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

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

    如果您在实施过程中发现更多优点和缺点,请随时添加您自己的指针。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多