我使用SailsJS / Waterline ORM和Mongo DB。它是一个实时应用程序,所以sails sockets.io pub / sub被大量使用。
我的应用程序中有一些需要多对多和多对一关联的实例。
我非常确定我可以实现与嵌入式集合的多对多关系,但水线关联似乎更清晰(例如,访问publishAdd())。
问题是:连接/链接数据(嵌入式或关联式)的最佳实践(对于我当前的堆栈)是什么?由于其他查询,是否存在关联记录的性能损失?
答案 0 :(得分:0)
问自己这些问题:
<强> 1。我是否只想创建/阅读这些关联或嵌入式馆藏?
OR
<强> 2。我是否需要对这些集合进行大量更新/删除操作?
<强> BUT 强>
如果您的答案更倾向于Q2,那么协会就是您所需要的。这种方法有很多好处:
更新/删除操作不需要更新/删除嵌入其中的所有集合中的嵌入文档。
由于您大量使用套接字,因此关联将有助于以更有条理的方式通过套接字通知模型的更改。
每个嵌入式集合都有自己的模型,因此它自己的结构,使代码更有条理,更容易维护,更容易理解。
如果您在实施过程中发现任何优点和缺点,请随意添加自己的指针。祝你好运!