2012-12-24 52 views
3

如果我有一個對象有一個列表。我應該將該列表存儲在與對象相同的文檔中,還是將該列表存儲在帶有引用的單獨文檔中。或者我應該將它存儲在兩者中,也不是說照片列表對象的大小會增加,謝謝任何建議。RavenDB模型設計一對多

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

回答

4

兩者都可以接受。阿隆索是對的,直到你有一個令人信服的理由來分開它。

如果您經常需要訪問剩餘的相冊信息並且照片列表非常大,那麼令人信服的原因的示例就是如此。另一個例子是,如果你想在專輯上進行版本跟蹤,但不想在照片列表中進行版本跟蹤

第三種可能性是將每張照片存儲在單獨的文檔中,並引用相冊ID而不是保留列表。

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

這真的只是取決於什麼對您的情況更好。沒有一條正確的道路。

4

將列表存儲在包含對象/文檔中。除非你有一個非常有說服力的理由否則。