【发布时间】:2012-04-11 06:25:16
【问题描述】:
在不久前的一次简短实验之后,我正在重新访问 RavenDB。目前我正在考虑嵌套 3 层深度的文档设计,即
public class UserEvent
{
public UserEvent()
{
Shows = new List<Show>();
}
public readonly string IdPrefix = "Events/";
public string Id { get; set; }
public string Title { get; set; }
public List<Show> Shows { get; set; }
}
public class Show
{
public Show()
{
Entries = new List<ShowEntry>();
}
public readonly string IdPrefix = "Shows/";
public string Id { get; set; }
public string EventId { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
public List<ShowEntry> Entries { get; set; }
}
public class ShowEntry
{
public readonly string IdPrefix = "ShowEntries/";
public string Id { get; set; }
public string DogId { get; set; }
public string OwnerName { get; set; }
public EntryClass Class { get; set; }
}
首先,这是一个明智的设计吗? UserEvent 通常有几个(少于 6 个)Show,但 Show 可以有几十到几百个 ShowEntry。我已将DogId 包含在ShowEntry 中,但也许稍后我会将其更改为Dog 类型的属性。 Dog 属于特定的 Breed,Breed 属于 Group。故事的Dog 方面必须是另一个问题,但现在我对UserEvent 方面感兴趣。
如果我的文档是这样设计的,我是否可以使用修补 API 将项目添加到 Show 内的 Entries 集合中?我想要一个索引,它将根据 Dog 属性总结条目。如果对文档进行修补,是否会处理索引?
【问题讨论】:
标签: ravendb