次の定義でファイル/フォルダー構造を保存するデータベーステーブルがあります。
id parentid fileOrFolderName
111 222 aaa.txt
222 333 folderA
333 Root folderB
444 222 bbb.doc
…………
「ルート」は、事前定義されたルート フォルダの特別な ID です。したがって、上記のレコードは次のことを意味します。「ルートフォルダー\フォルダー B\フォルダー A\aaa.txt」にあるファイルがあり、その ID は「111」です。
ここで、ファイルのフル パスが与えられたので、その ID を取得したいと思います。例えば:
GetFileId("RootFolder\folderB\folderA\aaa.txt") は "111" を返します。
このテーブルには約 10 ~ 50,000 のレコードがあります。GetFileId 関数を正しく効率的にコーディングするにはどうすればよいですか?
この質問は言語やデータベースに限定されません。必要なのは正しいアルゴリズムです。前もって感謝します。