我正在使用 SailsJS/Waterline ORM 和 Mongo DB。这是一个实时应用程序,因此 sails sockets.io pub/sub 被大量使用。
我的应用程序中有一些实例需要多对多和多对一关联。
我相当确定我可以通过嵌入式集合实现多对*关系,但是水线关联似乎更清晰一些(例如,访问publishAdd())。
问题是:连接/链接数据(嵌入或关联)的最佳实践(对于我当前的堆栈)是什么?由于额外的查询,关联记录的性能是否会受到影响?
最佳答案
问自己这些问题:
<强>1。我是否要创建/读取这些关联或嵌入式集合?
或者
<强>2。我需要对这些集合进行大量更新/删除操作吗?
- 如果您的答案更倾向于 Q1,则可以使用嵌入式集合。它们通过一次仅查询一个集合来加快访问速度。实现起来也更简单。
但是
如果您的答案更倾向于 Q2,那么关联就是您所需要的。这种方法有很多好处:
更新/删除操作不需要更新/删除嵌入文档的所有集合中的嵌入文档。
由于您大量使用套接字,关联将有助于以更有组织的方式通过套接字通知模型的更改。
每个嵌入式集合都有自己的模型,因此也有自己的结构,这使得代码更有组织性、更容易维护且更易于理解。
如果您在实现过程中发现更多优点和缺点,请随时添加您自己的指导。祝你好运!
关于node.js - SailsJS - 关联记录与嵌入式集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104929/