我想設計產品之間的模式關係有多個類別什麼是你選擇的性能(讀,寫)更好。如何設計架構更好,產品與類別的關係
模式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你既不能獲得產品也不能獲得類別數據,所以你將不得不做多個在沒有交易的情況下,一旦應用程序業務成熟,這可能會成爲一個痛點。 –