トップ回答者
掲示板サイトで記事の親子関係

質問
-
よく掲示板で親子関係を持った記事が階層になっているのを見かけますが、Repeaterにどのようにデータバインドすればよいのでしょうか?
返信・返事の記事のことです。
記事を表すTopicテーブルで、記事のParentIDを親の主キーのIDに指定しています。親がない記事のParentIDをnullか0にしようと思っています。
┯親記事(TopicID=3,ParentID=0)
┃┠子記事(ParentID=3)
┃┗子記事(ParentID=3)
┃
┠親記事(TopicID=4,ParentID=0)
┃┠子記事(ParentID=4)
┃┗子記事(ParentID=4)
┃
┗親記事(TopicID=5,ParentID=0)
回答
-
たけし さんからの引用
┯親記事(TopicID=3,ParentID=0)
┃┠子記事(ParentID=3)
┃┗子記事(ParentID=3)
┃
┠親記事(TopicID=4,ParentID=0)
┃┠子記事(ParentID=4)
┃┗子記事(ParentID=4)
┃
┗親記事(TopicID=5,ParentID=0)
データ構造的に、┯親記事(TopicID=3,ChildKbn=0)
┃┠子記事(TopicID=3,ChildKbn=1)
┃┗子記事(TopicID=3,ChildKbn=1)
┃
┠親記事(TopicID=4,ChildKbn=0)
┃┠子記事(TopicID=4,ChildKbn=1)
┃┗子記事(TopicID=4,ChildKbn=1)
┃
┗親記事(TopicID=5,ChildKbn=0)のようにすれば、TpopicID > ChildKbn > 登録日付 でソートしたものをそのままバインドできます。いずれにしてもバインドするにはバインドする際にデータがきちんとそろっている必要があるわけで、まずはそこに注視してみてはいかがでしょうか?
すべての返信
-
たけし さんからの引用
┯親記事(TopicID=3,ParentID=0)
┃┠子記事(ParentID=3)
┃┗子記事(ParentID=3)
┃
┠親記事(TopicID=4,ParentID=0)
┃┠子記事(ParentID=4)
┃┗子記事(ParentID=4)
┃
┗親記事(TopicID=5,ParentID=0)
データ構造的に、┯親記事(TopicID=3,ChildKbn=0)
┃┠子記事(TopicID=3,ChildKbn=1)
┃┗子記事(TopicID=3,ChildKbn=1)
┃
┠親記事(TopicID=4,ChildKbn=0)
┃┠子記事(TopicID=4,ChildKbn=1)
┃┗子記事(TopicID=4,ChildKbn=1)
┃
┗親記事(TopicID=5,ChildKbn=0)のようにすれば、TpopicID > ChildKbn > 登録日付 でソートしたものをそのままバインドできます。いずれにしてもバインドするにはバインドする際にデータがきちんとそろっている必要があるわけで、まずはそこに注視してみてはいかがでしょうか?
-
再回帰クエリーを使ったほうが断然早いと思います。 SQL Server 2005 系の場合。
http://blogs.sqlpassj.org/mitsugi/archive/2005/05/22/9087.aspx