我來自SQL世界,所以自然mongo/noSQL一直是一個冒險。隨着meteor.js和mongo,請告訴我組織一個類別集合的最佳方式
我正在構建一個頁面來添加/編輯類別,稍後將分配「posts」。
我已經基本上建立是這樣的:
{
_id: "asdf234ljsf",
title: "CategoryOne",
sortorder: 1,
active: true,
children: [
{
title: ChildOne,
sortorder: 1,
active: true
},
{
title: ChildTwo,
sortorder: 2,
active: true
}
]
}
所以後來,開創了「帖子」我想這個職位分配給一個或多個父類,以及任選一種或多種類別的孩子時,在選定的父類別內。訪問者如果點擊父類別,則會顯示該父類別中的所有帖子,如果他們選擇了子類別,則只顯示該子類別中的帖子。
的邏輯是顯而易見的,簡單的,但在SQL我會創建的表是這樣的:
table_Category (CategoryID, Title, Sort, Active)
table_Category_Children (ChildID, ParentID, Title, Sort, Active)
我一直在閱讀流星發現書裏提到,流星給了我們許多工作的一個工具在集合級別運行時更好,以及DDP如何在文檔的頂層運行,這意味着如果子集合或陣列中的某些內容變小,可能不需要的數據將被髮送回所有連接/訂閱的客戶端。
所以,這讓我覺得我應該是組織的類別是這樣的:
Collection for parent categories
{
_id: "someid",
title: "CategoryOne"
sortorder: 1,
active: true
},
{
_id: "someid",
title: "CategoryTwo"
sortorder: 1,
active: true
}
Collection for Child Categories
{
_id: "someid",
parent: "idofparent"
title: "ChildOne"
sortorder: 1,
active: true
},
{
_id: "someid",
parent: "idofparent"
title: "ChildTwo"
sortorder: 1,
active: true
}
或者,也許它更是這樣的:
Collection for parent categories
{
_id: "someid",
title: "CategoryOne"
sortorder: 1,
active: true,
children: [ { id: "childid" }, ... ]
}
我想了解的最佳實踐/方法流星和蒙戈在這種情況下將大大幫助我全面。
所以結論:我有一個管理頁面添加/編輯這些類別。當客戶創建帖子時,他們會選擇適合其帖子的父類和子類,並確保從頭開始正確組織它。將我的思維過程從傳統的RDBMS改爲NoSQL是一大進步。
謝謝!