2011-09-12 37 views
1

好吧,我要建立我的蒙戈DB模式的一個小網站,我需要的是複製這個模式到蒙戈DB類別:與其他收藏品蒙戈Db的家長和孩子標籤字段

product 
     -> tag1 
       ->child_tag1 
       ->child_tag2 
     -> tag2 
       ->child_tag1 
       ->child_tag2 
     -> tag3 
       ->child_tag1 
       ->child_tag2 

這是用mongo重現這個模式的最好方法嗎?

我肯定需要能夠改變標籤或子標籤不更新所有對象集合:) 將帖子

我的

好事業知道我的問題不是那麼清楚,我需要澄清的是我試圖將一個MySQL數據庫網站轉換到一個mongoDb網站。

所以我有4代表在MySQL:

products 

id(AUTO) | product_name | qty 
1   biscuits  34 
2   limonade  29 

tags 

id(AUTO) | tag_name 
    1   sugar 
    2   eggs 
    3   vitamine C 

tags_childs 

id(AUTO) | id_tag | tag_child_name 
    1   1  glucouse 
    2   2  protein 
    3   2  chicken 
products_tags 

id_product | id_tag | id_tag_child 
    1   1   NULL 
    1   1   1 
    1   2   3 
    2   3  NULL 

所以我用products_tags表加入了4桌(這就是爲什麼加熱加入即時切換到MongoDB的:))

所以我可以用mongodb集合和對象重現這個場景嗎?

thx :)

+1

你能解釋一下你到底在做什麼嗎?因爲現在我不完全瞭解你到底在做什麼。 – Petrogad

+0

所以我想指出一個完全獨立的問題..我不確定,但你不應該同時需要一個標籤和tags_childs表,因爲你可以在標籤爲「tag_parent_id」的標籤中添加一個額外的列,這是一個標識另一個標籤..雖然起草了一個問題的答案,但至少想要指出。 – Petrogad

回答

1

只是想確定我正在理解您的上述文檔顯示的內容;實質上許多產品可以有許多標籤,並且標籤可以在它們下面有孩子(編碼標籤 - > Php是編碼的子標籤)。

有了這樣我在這裏對上述問題的理解是我會怎麼構建你的蒙戈類別:

產品系列:

{ 
    "ProductName":"Sweet Jelly", 
    "Qty":9, 
    "Tags":[ 
    ListOfTagIds 
    ] 
} 

TagIds的名單將是唯一標識符這MongoDB的自動分配到每個創建的新領域.. see here

從那裏我想創建一個標籤集合:

{ 
    "TagName":"Coding Languages"; 
    "ChildTags":[ 
     $_idOfChildren 
    ] 
} 

然後如果你的標籤有一個孩子:

{ 
    "TagName":"PHP", 
} 

對於這種父/子關係,你可以從設在這裏這個優秀的蒙戈資源再多讀一些關於它:Mongo Book - 第16頁開始沒有聯接。

祝你好運!

+0

謝謝你的鏈接,他們真的很有趣:),抱歉,但我刪除了答案的答案,原因(也許我的壞問題不確定),我需要一個一對多的關係,因爲產品可以有很多父母標籤自己與許多childs標籤相關,所以如果產品有父母標籤1,他可以沒有標籤1 childs標籤相關,不知道是否清除...對不起我的壞英文 – sbaaaang

+0

試圖規劃我傷心,產品{_id:ObjectId(),標籤:[id_tag_parent:[id_tag_child,id_tag_child,id_tag_child],id_tag_parent:[NULL因爲我需要它可以是NULL],id_tag_parent:[id_tag_child ]]} – sbaaaang

+0

uhm ...:P我編輯了我的問題:P更好,如果你看看我的表格數據:P eheh thx! – sbaaaang