之前面试的时候遇到一个设计数据库的面试题:如果要用数据库储存一个文件夹的所有文件与子文件夹的名称与层级关系(支持任意层级的文件夹嵌套),你会如何设计表以及字段?说明每个表与字段的作用。
目录及子目录其实就是树这种数据结构,问题就是如何用关系型数据库如何储存树?
我设计的表如下:
Name:文件名或者目录名
Type:True是目录,False是文件
Depth:表示文件或者目录所处的层级;根目录是1,子目录是2,子目录的文件也是2
ParentDirection:是父目录
这样就可以在关系型数据库里存储树这种数据结构了。