2011-02-10 5 views
1

Je suis curieux de connaître les opinions des gens sur le design de ce système de collection.de mysql à mongodb - concevoir des collections

Je veux essayer d'utiliser MongoDB pour une application (comme je l'ai utilisé mysql depuis 8 ans)

Je donnerai un schéma de table relationnelle d'abord.

Tables

users 
user_friends 
user_notifications 

articles 
article_categories 
article_participants 

comments 

Si je devais mettre en œuvre cette structure de table dans MongoDB, serait-ce la bonne façon de définir mes collections:

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 
    } 
} 

S'il vous plaît se sentent pour commenter ou expliquer comment vous Organisez vos collections. Toute aide est très appréciée.

De même, devrais-je même utiliser mongodb pour ce type d'application? (une application de partage de blog social)

Répondre

1

mon opinion est le meilleur moyen d'utiliser objet-valeur comme d'intégrer objet de l'objet entité.

Cocher cette link for more details

Valeur Objet: Un objet qui contient des attributs, mais n'a pas d'identité conceptuelle. Ils devraient être traités comme immuables. Exemple: Lorsque les gens échangent des billets d'un dollar, ils ne font généralement pas de distinction entre chaque facture unique; ils sont seulement préoccupés par la valeur nominale du billet d'un dollar. Dans ce contexte, les billets de banque sont des objets de valeur. Cependant, la Réserve fédérale peut être préoccupée par chaque projet de loi unique; dans ce contexte, chaque projet de loi serait une entité. Mongodb sera un excellent outil pour une telle application.

0

Dans MongoDB, l'incorporation est beaucoup plus efficace que le référencement en utilisant des tables supplémentaires.

Pour plus d'informations, vous pouvez regarder dans ce lien http://www.mongodb.org/display/DOCS/Schema+Design

Questions connexes