血統をツリーなHTMLで表現する
id:arikui:20060121:1137852207より。
ツリー表示ってこういうことかなという感じでとりあえず話を進めていくことにすると、ツリーで表示するにあたって2つの血統に対するアプローチがあるかなと思う。つまり、系統図(サイアーライン)と血統表であるわけだけど、血のつながり、特に親子のつながりを辿っていけるものという意味では本質的に同義だと思う。ただ大きな違いがあって、系統図は1頭の親から多数の子を見ていくのに対し、血統表は1頭の馬から代を限ってしまえば決まった数の親を見ていくという決定的な違いがあると。
と考えると、やはり子から親を見ていくことになるのか。ためしに、ディープインパクトの2代血統表をリストで表示させてみる。
- ディープインパクト
-
- サンデーサイレンス
-
- Halo
- Wishing Well
- ウインドインハーヘア
-
- Alzao
- Burghclere
ソースはこんな感じ。単にul-li要素をネストさせてるだけ。ただし、はてななのでclass属性に描画上の意味は何もない(--;
<ul class="bloodlist"> <li class="horsename">ディープインパクト</li> <li class="parents"> <ul> <li class="fathername">サンデーサイレンス</li> <li class="parents"> <ul> <li class="fathername">Halo</li> <li class="mothername">Wishing Well</li> </ul> </li> <li class="mothername">ウインドインハーヘア</li> <li class="parents"> <ul> <li class="fathername">Alzao</li> <li class="mothername">Burghclere</li> </ul> </li> </ul> </li> </ul>
描画の問題はさておき、class名を要素名に置き換えればXMLの片鱗が見えてくるのではないだろうかと思うのですが、いかがでしょうか。
ただ、代が重なるとネストの階層構造がものすごいことになって、実用的ではないという危惧はあるけれども、親子関係をどうにも表現しきれないHTMLテーブルの雑多な構造よりかはマシかなとか。データベースに詳しくないのでそのあたりの事情を無視して純粋にマークアップからプロトタイプを組んでみたり。