2011-02-10 39 views
1

我很想好好聽聽人們對他們設計這個收集方案的意見。從mysql到mongodb - 設計集合

我想嘗試使用MongoDB的一個應用程序(如我一直在使用的MySQL在過去的8年)

我會先給出一個關係表模式。

users 
user_friends 
user_notifications 

articles 
article_categories 
article_participants 

comments 

如果我要實現的是表結構到MongoDB中,這會是正確的方式來定義我的集合:

users => array 
{ 
    _id 
    email, 
    password, 
    name, 
    ... 
    user_friend => array{ 
     _user_id, 
     date_created 
    } 
    user_notifications => array{ 
     _notification_id 
    } 
    my_articles =>array{ 
     _article_id 
    } 
} 

article 
{ 
    _id, 
    content_, 
    date_created, 
    ..., 
    article_category => array{ 
     _category_id 
    } 
    article_participants = array{ 
     _user_id 
    } 
    comments=>array{ 
     _user_id 
     name, 
     comment, 
     date 
    } 
} 

categories 
{ 
    _id, 
    _user_id 
    name 
    comments=>array{ 
     _user_id 
     name, 
     comment, 
     date 
    } 
} 

請隨時發表評論或解釋你將如何組織你的收藏。任何幫助深表感謝。

以及,我應該甚至使用mongodb這種類型的應用程序? (社交博客分享應用)

回答

1

我的看法是最好的方法是使用值對象來嵌入實體對象的對象。

檢查這個link for more details

值對象:一個包含屬性,但沒有概念上的身份的對象。他們應該被視爲不可變的。例如:當人們交換美元鈔票時,他們通常不區分每個獨特的鈔票;他們只關心美元鈔票的面值。在這種情況下,美元鈔票就是價值對象。但是,美聯儲可能會關注每一個獨特的法案;在這種情況下,每個賬單將是一個實體。

0

Mongodb將成爲這種應用程序的優秀工具。

在MongoDB中,嵌入比使用額外表引用效率高得多。

欲瞭解更多信息,你可以看看這個鏈接http://www.mongodb.org/display/DOCS/Schema+Design