2010-10-22 36 views
3

Je commence à apprendre MongoDB, en utilisant le pilote NoRM C# dans un projet ASP.NET MVC. Je suis en train d'écrire des classes POCO en ce moment, et j'ai des questions sur la façon d'implémenter les relations entre Blog Posts, Commentaires, et Tags. Je pense J'ai le message & Commentaire, mais je ne sais pas quoi faire sur les étiquettes. En SQL, ils sont des relations plusieurs-à-plusieurs, comment pourrais-je implémenter quelque chose de similaire avec MongoDB & NoRM?Mettre en place un blog avec MongoDB et NoRM: les relations?

Ce sont mes classes pour Post & Commentaire:

public class Post 
    { 
     public ObjectId _id { get; set; } 
     public string Title { get; set; } 
     public string Post { get; set; } 
     public string Uri { get; set; } 
     public DateTime Date { get; set; } 
    } 

public class Comment 
    { 
     public ObjectId _id { get; set; } 
     public DbReference<Post> Post { get; set; } 
     public string Comments { get; set; } 
     public string Author { get; set; } 
     public string Email { get; set; } 
     public string Url { get; set; } 
     public DateTime Date { get; set; } 
    } 

Mon objet Tag est celui en question, comment puis-je rapporter des balises < ==> messages.

public class Tag 
    { 
     public ObjectId _id { get; set; } 
     public string Name { get; set; } 
    } 

Merci.

Répondre

4

Vous n'en avez pas.

Vous travaillez maintenant avec NoSql sans relation, ce qui nécessite un état d'esprit complètement différent. Les tags font partie de la poste et n'existent pas seuls.

Je ne peux pas répondre à mieux que vous un lien vers ce blog: That No SQL Thing: The relational modeling anti pattern in document databases

+0

En effet, vous intégrez les balises, la bonne chose est que vous pouvez toujours indexer ces balises. – TTT

+0

Ensuite, comment pourrais-je mettre en place un tel blog qui contient plusieurs tags, et cliquez sur un tag apporterait des blogs qui a le même tag? Similaire à Stackoverflow? Merci. – Saxman

+0

@Saxman, vous auriez un attribut tags en tant que chaîne sur votre BlogPost, puis faire une recherche de contenu sur ce champ. NoRM prend en charge ce hors de la boîte. – jfar