求一个数据库设计方案
环境: 
 ------------------------------------ 
 资料的分类存储,并方便按一定方式读出 
 分类采用树形方式 
 一级分类下有若干二级分类 
 每个二级分类下有若干条资料(可能有很多级,这里只例举两级) 
 一级分类和二级分类个数都不定      可能随时增减或修改   
 资料总计预期在2-5百万条 
 采用SqlServer   2005 
 ------------------------------------   
 问题: 
 ------------------------------------ 
 现考虑   某些资料   可能同时属于其他二级分类   
 例如      
 一片英文动漫的音频资料(资料X)      可能同时属于   英文   动漫   下载   三个二级分类 
 而这三个二级分类   可能属于同一个一级分类      也可能属于不同的一级分类   
 情况就是这样了     
 现在我的页面可能有   
 所有二级分类的资料列表 
 每个资料的展示页面 
 ------------------------------------   
 要求: 
 ------------------------------------ 
 1:在英文,动漫,下载   三个二级分类的列表页中   都能找到资料X; 
 2:在资料X的展示页面      有通往英文,动漫,下载   这三个分类列表的链接途径; 
 ------------------------------------   
 提问目的: 
 ------------------------------------ 
 现求合理的数据库设计方案      能解决上述问题 
 并给出解决上述两个要求的sql语句(希望不要太慢,尽量可以不用关联查询,尽量可以不用or,尽量可以不用字符串判断做where条件) 
 1:分类表 
 2:资料表 
 ------------------------------------ 
------解决方案--------------------create table cls ( 
  clsId long identity primary key 
  clsName varchar(50), 
  parentId long 
 )   
 create table doc( 
  docId long identity primary key, 
  docName varchar(50), 
  ... 
 )   
 create table docCls( 
  docId long reference doc(docId), 
  clsId long reference cls(clsId) 
  primary key (docId,ClsId) 
 )