请帮忙解决xml结构的设计问题
我现在正在开发一个Blog,主要的内容是文章与照片,没有传统数据库,以Xml保存数据,现在有一些
问题需要解决,希望能得到帮助。
现在的数据结构(文章,照片类似,不列出)主要有四种文件:
1.文章内容的xml,每一篇文章一个xml文件,仅存放文件内容
2.文章索引的xml,存放文章的索引,结构片断如下:
<Item ID= "e8902a82c8b299b " Path= "2007 " CharLength= "103 " Date= "2007-5-7 "
Time= "22:03 " ReplyCount= "10 " ViewCount= "15 ">
<Caption> <![CDATA[外祖父荣禄]]> </Caption>
<Resume> <![CDATA[ 醇贤亲王有四位“福晋”①,生了七子三女。他去世时,遗
下三子一女,最长的是第五子,即我的父亲载沣,那年八岁,承袭了王爵。我的两个叔父,五岁的载洵
和三岁的载涛,同时晋封为公爵。我家从此又开始蒙受着新的“恩光福禄”。然而,醇王府这最后十几
年的恩光福禄,比过去的几十年掺和着更多的中国人民的苦难与耻辱,也同样的和慈禧这个名字不能分
开。]]> </Resume>
</Item>
3.分类与文章的索引Xml,因为文章与分类是多对多的关系,一篇文章可能对应多个分类,结构片断如
下:
<Item ID= "文章的ID " Category= "分类的ID " />
<Item ID= "文章的ID " Category= "分类的ID " />
....
如果要取某一个分类的的所有文章就可以使用xpath取出来
4.分类的Xml,主要是保存分类信息,一棵树,这里就不再累述
现在主要的问题是:
我现在是将分类索用放在两个xml中,一个是分类与文章的索引,相关于数据库的关系表;一个是文章
的索引,存放文章的标题、摘要、创建时间等信息
但如果文章很多的话,索引文件就会变得很大,这样肯定是不行的,我想的办法是使用类似如数据库的
分表的方法,但这样的话,索引肯定会变得很麻烦,比如我要找某个分类下的所有文章,或者找某个日
期下的所有文章等
另外,请问一般xml文件多大不会影响速度?
[解决办法]
首先XML作数据库,只适合于小型系统
估计下会有多少文章
如果文章过多,建议每个分类建个索引文件
[解决办法]
多大不好说,因为要根据深度和广度两项来衡量。
我测试过深度3,XML大小10M左右,解析器MSXML DOM,用读取的时间总共也才花了2.4秒
做一个查询xmldoc.selectNodes( "//*[@id= '000685 '] ");,返回12000条的记录,时间1秒。
我感觉这样的时间还是可以接受的。