日期:2014-05-17  浏览次数:20627 次

如何设计Table来存放磁盘里面所有文件目录及目录下的文件
前端时间,一朋友问我如何设计一个表名存放磁盘里面所有文件目录及目录下的文件,刚以为很简单,所以设计了一个这样的很粗糙的表
DIRID PREDIRID DEPTH PATHNAME

dirID是主键

predirid是目录下的前一目录ID
depth 为文件或目录的深度
pathname 为文件或目录名称

后来想想,如果需要一个文件名的绝对路径,那就要一直向上遍历,得多次查询数据库,对数据库的压力非常大,在这里问问各位大牛, 还有别的优化方案么
MYSQL,mssql都行

------解决方案--------------------
我的话,表建立如下:
ID uniqueidentfier
Name nvarchar(255): 这里储存目录名字或者文件名字,里面还有.的就是文件名
FullPath (1000):加上Name的完整路径

predirid我觉得没啥必要,因为可以根据Fullpath随时生成,depth也一样。


------解决方案--------------------
引用:
前端时间,一朋友问我如何设计一个表名存放磁盘里面所有文件目录及目录下的文件,刚以为很简单,所以设计了一个这样的很粗糙的表
DIRID PREDIRID DEPTH PATHNAME

dirID是主键

predirid是目录下的前一目录ID
depth 为文件或目录的深度
pathname 为文件或目录名称

后来想想,如果需要一个文件名的绝对路径,那……


貌似开启了filestream 就可以达到这个功能了。