Вы можете сохранить дерево каталогов в одной таблице, используя любую базу данных SQL, сделав таблицу самоссылочной.Хорошим примером является таблица каталогов установщика Windows , где вы увидите такую структуру:
- Directory = поле идентификатора первичного ключа, обычно целое число
- Directory_Parent = поле идентификатора "внешнего ключа", которое указывает на идентификатор другого каталога в той же таблице
- Значение = строка, содержащаяимя папки / папки
Ваша таблица файлов будет иметь внешний ключ, ссылающийся на идентификатор каталога.Чтобы найти полный путь, вы должны следовать по цепочке и строить путь с конца (справа), прикрепляя каждый родительский каталог вперед (слева).Например, файл будет указывать на идентификатор каталога «4» с подпапкой «Значение», затем вы извлекаете родительское значение «папка», затем родительские значения снова, пока не доберетесь до корня, создавая путь, подобный /root/folder/subfolder/filename
.