我有两个Mongoose模式Post
和Tag
,我想设计它们之间的多对多关系。我想知道哪一个是最佳的演出解决方案:
Tag
架构Post
ID数组
醇>
第二个解决方案似乎更容易实现,因为当我编辑与一个帖子相关的标签列表时,只需要修改一个数组,但同时获取属于一个标签的所有帖子时性能可能会降低
答案 0 :(得分:2)
仅将标记ID数组保留在Post模式
中
我肯定会使用这个更直接的第二种解决方案。
除非您有异国情调的要求,否则您不需要让每个Tag
明确跟踪Post
引用。 Post
文档中的Tag
个引用数组的大小实际上是无限制的。这种使用模式往往会为流行文档创建存储碎片和/或性能问题,这些文档经常会超出record padding的分配记录空间。
另一方面,单个帖子中使用的标签数量不太可能随着时间的推移而发生很大变化,您可以通过在Tag
Post
数组中添加索引来提高此查询效果。集合。