いや、ちょっと思いついただけのコトを、メモメモ
XMLをDB化しようとしたら、ふつう階層型データベースみたいに、
親-親パラメーター1
-親パラメーター2
-子1
-子1パラメーター1
-子1パラメーター2
-孫1(子1の)
-孫2(子1の)
:
-子2
:
の形を連結リストで実現するようなかんじに考えると思う。
でも、これで、getElementByName("title");
みたいな、どこのノードに含まれているのかわからないものを検索する場合、
親からみていかないといけない(ノードの名前がtitleのものを、親からたどって全部探す)。
もし、上の階層型のほかに、以下のようなテーブル
<ノードパス,パラメータ種別,値>
というテーブルがあれば、たとえば、上記の例の場合
/親/,#node,
/親/親パラメータ1/,#para,val1
/親/親パラメータ2/,#para,val2
/親/子1/,#node,
/親/子1/子パラメータ1/,#para,val3
/親/子1/子パラメータ2/,#para,val3
/親/子1/孫1/,#node,
/親/子1/孫2/,#node,
/親/子2/,#node,
のようなかんじで、ノードのパスをキーとしてテーブル化してしまえば、
getElementByName("title");は、ノードパスに/title/を含むかどうかを
検索するだけでいい。
で、この処理なら、データが増えた場合、テーブルのレコードを分けて、
並列処理できると思う。
なんで、はやくなるんじゃないかな・・・