2012-12-24 2 views
3

Si j'ai un objet qui a une liste. Dois-je stocker cette liste dans le même document que l'objet ou stocker cette liste dans un document séparé avec une référence. Ou devrais-je le stocker dans les deux, Aussi pas que la taille de l'objet liste de photos va augmenter, merci pour tout conseil.RavenDB modèle Design un à plusieurs

public class Album 
{ 
    public string Name { get; set; } 

    //Should I store this inside of the album document? 
    public List<Photo> Photos {get; set; } 
} 

public class Photo 
{ 
    public string Title { get; set; } 
} 

Répondre

4

Soit sont acceptables. Alonso a raison, attendez que vous ayez une raison impérieuse de le séparer. Exemple d'une raison impérieuse serait si vous avez souvent besoin d'accéder au reste de l'information de l'album et la liste des photos était très grande. Un autre exemple est si vous vouliez un suivi de version sur l'album mais pas sur la liste Photos.

Une troisième possibilité serait de stocker chaque photo dans un document séparé et de référencer l'identifiant de l'album au lieu de conserver une liste du tout.

public class Photo 
{ 
    public string Id { get; set; } 
    public string Title { get; set; } 
    public string AlbumId { get; set; } 
} 

Tout dépend de ce qui fonctionne le mieux pour votre scénario. Il n'y a pas un seul bon chemin.

4

Stockez la liste dans l'objet/document contenant. Sauf si vous avez une raison vraiment convaincante de faire autrement.