我第一次使用RavenDB作为网站的数据库。我刚刚开始考虑如何在数据库中表示页面网站层次结构。我读了这篇文章Modelling hierarchical data with RavenDB,它显示了一种在文档数据库中存储层次结构的非常简洁的方法,因此我正在使用这种设计。
所以我有我的页面文件
public class Page
{
public string Id { get; set; }
public string Slug { get; set; }
}
和我的PagesHierarchy文档。
public class PagesHierarchyTree
{
public class Node
{
public string PageId { get; set; }
public List<Node> Children { get; set; }
}
public List<Node> RootPages { get; set; }
}
我们的想法是让PagesHierarchyTree代表树,而且这个文档对实际文档有引用ID。
所以,现在回答我的问题。我想创建一个索引,我可以根据slug找到一个文档(页面),但也会根据文档在树中的位置返回段塞路径,即a / b / c。
我读到Indexing Hierarchical Data和Indexing Related Documents,但我很难将它们组合在一起。
有人可以帮我解决这个问题,还是指出我正确的方向?