无限级目录数据库结构与方法一例 - 51windows.Net
51windows.Net > 技术文档 > Web开发 > ASP > Code Sample > 目录结构示例代码 > 无限级目录数据库结构与方法一例

无限级目录数据库结构与方法一例

来自:51windows.Net  作者:海娃
关键字:目录,数据库

下面是无限级目录数据库结构示例与方法,贴出来,仅供大家参考。

Folder 表:

Folderid:目录ID,自动编号
FolderParentID:上级目录ID,Int
FolderName:目录名称,Varchar
FolderDescription:目录说明,Varchar

File 表:

FileID:文档ID,自动编号
FileFolderID:所属目录ID,Int
FileName:文档名称,Varchar
FileDescription:文档内容,Varchar或备注(ntext)

function GetAllChildID(id) '取得FolderID为id的目录下所有子目录的FolderID,以半角逗号分开 dim arrID arrID = id Set rsdir = Conn.Execute("Select FolderID,FolderParentID from [Folder] where FolderParentID = " & id & "") if rsdir.eof and rsdir.bof then set rsdir = nothing GetAllChildID = arrID exit function else while not rsdir.eof arrID = arrID & "," & GetAllChildID(rsdir("FolderID")) rsdir.movenext wend end if set rsdir = nothing GetAllChildID = arrID end function '从表File中取得某个目录下所有文档的Sql dim AllChildID AllChildID = GetAllChildID(5) '取得FolderID为5下所有目录的FolderID AllfileSql = "Select FileID,FileName from [File] where FileFolderID in ("& AllChildID &")"

function FolderPath(id) '得到一个目录的完整路径 dim Pathstr,NewPathstr Set rsdir = Conn.Execute("Select FolderID,FolderName,FolderParentID from [Folder] where FolderID = " & id) if rsdir.bof and rsdir.eof then Pathstr = "" else Pathstr = "<a href=""Folder.asp?FolderID=" & rsdir("FolderID") &""">" & rsdir("FolderName") & "</a> > " & Pathstr if rsdir("FolderParentID") <> 0 then Pathstr = FolderPath(rsdir("FolderParentID")) & Pathstr end if end if NewPathstr = Pathstr set rsdir = nothing FolderPath = NewPathstr end function dim folderpathstr folderpathstr = FolderPath(67) response.write folderpathstr '输出 (技术文档 > Web开发 > ASP > Code Sample > 表单 > )





网站推荐:
虎的笑话 虎的成语 虎的歇后语
在线小游戏 成语排行榜 歇后语排行榜 中华五千年 文革图片


转载本站内容,请务必保留原作者信息。
本站提供的内容部分是在网上搜集,如果侵犯了您的版权,请告之,我们会删除内容或加上您的信息。(网站留言站内搜索)