我想设计产品之间的模式关系有多个类别什么是你选择的性能(读,写)更好。如何设计架构更好,产品与类别的关系
模式1 :: 2收集,用CATEGORY_ID阵列
Collection Category { id , name } Collection Product { id , name , category_ids: [category_id_1,category_id_2] }
模式2 :: 3收集,参考与新采集的参考
Collection Category { id , name } Collection Product { id , name } Collection product_category { id , product_id, category_id }
模式3:2收藏,镶嵌收藏参考
Collection Category { id , name } Collection Product { id , name , category_ids: { {id, category_id_1} {id, category_id_2} {id, category_id_3} } }
非常感谢。
我不同意读取性能不好的假设。你可以像db.Product.find一样查询({'category_id.id':category_id_2})。如果你有适当的索引,它会很快,并在一个查询中执行任务, 为什么我会避免选项2是因为简单的原因是从product_category你既不能获得产品也不能获得类别数据,所以你将不得不做多个在没有交易的情况下,一旦应用程序业务成熟,这可能会成为一个痛点。 –