私は初めてWebサイトのデータベースとしてRavenDBを使用しています。私はちょうど始めて、データベース内のページのウェブサイト階層を表現する方法について考えています。私はこの記事Modelling hierarchical data with RavenDBを読んで、それは文書データベースに階層を格納する本当にきれいな方法を示しているので、私はこの設計で走っています。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を持つようにすることです。
だから今私の質問に。私はスラグに基づいてドキュメント(ページ)を見つけることができるインデックスを作成したいだけでなく、ドキュメントがツリー内にどこに存在するかに基づいてスラグパス、すなわち/ b/cを返す。
私は約Indexing Hierarchical DataとIndexing Related Documentsを読んでいますが、それらをまとめるのは苦労しています。
誰かが私にこれを手伝ったり、正しい方向に私を指摘できますか?
here.を見つけました。うーん...私は不思議です。 – dezzy