none
掲示板サイトで記事の親子関係 RRS feed

  • 質問

  • よく掲示板で親子関係を持った記事が階層になっているのを見かけますが、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)

    2007年3月17日 9:29

回答

  •  たけし さんからの引用

    ┯親記事(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 > 登録日付 でソートしたものをそのままバインドできます。いずれにしてもバインドするにはバインドする際にデータがきちんとそろっている必要があるわけで、まずはそこに注視してみてはいかがでしょうか?

    2007年3月19日 2:05
    モデレータ

すべての返信

  •  たけし さんからの引用

    ┯親記事(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 > 登録日付 でソートしたものをそのままバインドできます。いずれにしてもバインドするにはバインドする際にデータがきちんとそろっている必要があるわけで、まずはそこに注視してみてはいかがでしょうか?

    2007年3月19日 2:05
    モデレータ
  • 再回帰クエリーを使ったほうが断然早いと思います。 SQL Server 2005 系の場合。
    http://blogs.sqlpassj.org/mitsugi/archive/2005/05/22/9087.aspx

    2007年3月19日 7:34
  • trapemiyaさん、ありがとうございます。

    そんな簡単なことだったんですね。

     

    おがわみつぎさん、ありがとうございます。

    まだSQL Serverに慣れていないのでよくわかりませんでした。

    2007年3月20日 9:16