C# 如何获取本地文件的id
我有一个数据库表,它使用以下定义保存文件/文件夹结构:C# 如何获取本地文件的id,c#,database,algorithm,sqlite,C#,Database,Algorithm,Sqlite,我有一个数据库表,它使用以下定义保存文件/文件夹结构: id parentid fileOrFolderName 111 222 aaa.txt 222 333 folderA 333 Root folderB 444 222 bbb.doc 根是预定义根文件夹的特殊Id。因此,上述记录的意思是:在Rootfolder\folderB\folderA\aaa.txt中有一个文件,其id
id parentid fileOrFolderName
111 222 aaa.txt
222 333 folderA
333 Root folderB
444 222 bbb.doc
根是预定义根文件夹的特殊Id。因此,上述记录的意思是:在Rootfolder\folderB\folderA\aaa.txt中有一个文件,其id为111
现在,给定文件的完整路径,我想获取其id。例如:
GetFileIdRootFolder\folderB\folderA\aaa.txt将返回111
这个表中大约有10-5万条记录,如何正确有效地编写GetFileId函数
这个问题并不局限于任何语言或数据库,我需要的是正确的算法。提前谢谢 对于这种数据结构,每个级别执行一次单独查找的明显算法是唯一有效的算法 对于目录层次结构中的每个级别,请执行以下操作: 从MyTable中选择id,其中parentid=?和fileOrFolderName=? 可以将所有查找合并到一个嵌套语句中: 从MyTable中选择id parentid在哪里= 从MyTable中选择id parentid在哪里= 从MyTable中选择id 其中parentid='Root' fileOrFolderName='folderB' fileOrFolderName='folderA' 和fileOrFolderName='aaa.txt' 然而,这不会更快,但会使查询构造更加复杂 要使其快速,请使用适当的索引。
parentid和fileOrFolderName两列上的索引应该会有所帮助。A在这两种语言上,id列可能会更好。谢谢CL,对于每个级别的单独查找不是很清楚,您能给出一些伪代码吗?GetFileId函数是由Cor Java或任何其他语言编写的,sql语句在该函数内调用。请给我一些建议,谢谢。