博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[实战]MVC5+EF6+MySql企业网盘实战(17)——思考2
阅读量:5957 次
发布时间:2019-06-19

本文共 1871 字,大约阅读时间需要 6 分钟。

写在前面

今天吃饭回来,突然有一个更好的想法,这里做一下记录。

系列文章

[实战]MVC5+EF6+MySql企业网盘实战(17)——思考2

思路

平时如果要获取电脑上的文件,大都会采用递归的方式,所以就想到这样一个表结构。如图:

id是文件或者文件夹的自增id,pid则是文件或者文件夹所在的文件夹的id,也就是父id。这样设计数据表的好处是,上传文件,创建文件夹,修改文件夹,只需要考虑当前对象就行,不需要再去考虑路径的问题。修改名称就做到只是修改名称就行,不再考虑修改文件夹的名称对找不到文件的问题了。

所以MyFile类如下:

///     /// 我的文件信息    ///     public class MyFile    {        [Key]        public int Id { set; get; }        ///         ///         ///         [Display(Name = "名称")]        [StringLength(1024)]        public string Name { set; get; }        ///         /// 扩展名        ///         [Display(Name = "文件扩展名")]        [StringLength(8)]        public string FileExt { set; get; }        ///         /// 文件或者文件夹图标        ///         [Display(Name = "文件图标")]        [StringLength(32)]        public string FileIcon { set; get; }        ///         /// 文件大小        ///         [Display(Name = "文件大小")]        public int FileSize { set; get; }        ///         /// 文件md5        ///         [Display(Name = "文件MD5")]        [StringLength(32)]        public string FileMd5 { set; get; }        ///         /// 文件修改时间        ///         [Display(Name = "文件修改时间")]        public DateTime ModifyDt { set; get; }        ///         /// 文件上传时间        ///         [Display(Name = "文件上传时间")]        public DateTime CreateDt { set; get; }        ///         /// 是否逻辑删除        ///         [Display(Name = "文件是否删除")]        public bool IsDelete { set; get; }        ///         /// 所属用户        ///         [Display(Name = "文件所属")]        public virtual UserInfo User { set; get; }        ///         /// 是否是文件夹        ///         public bool IsFolder { get; set; }        ///         /// 父id        ///         public int ParentId { set; get; }    }

总结

这样的操作更方便,前段传参的时候,只需要将当前对象的id,pid传到服务端就行。修改文件夹更简单了。出现今天的问题,是在开始这个项目的时候,没有考虑太深入,就是想着想到哪儿就写到哪儿,没有从整体去想细节问题。导致现在,该来该去的。

转载于:https://www.cnblogs.com/wolf-sun/p/4995754.html

你可能感兴趣的文章
在python中单线程,多线程,多进程对CPU的利用率实测以及GIL原理分析
查看>>
CentOS6.5+mysql5.1源码安装过程
查看>>
Js 笔记
查看>>
C++: find()函数的注意事项
查看>>
js的事件学习笔记
查看>>
leetcode 【 Add Two Numbers 】 python 实现
查看>>
Android接收系统广播
查看>>
将网络中的图片存为NSData并保存到sqlite的BLOB字段中
查看>>
Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
查看>>
iOS用三种途径实现一方法有多个返回值
查看>>
python--class test
查看>>
从零开始理解JAVA事件处理机制(3)
查看>>
HttpURLConnection类的使用
查看>>
linux命令分析---SED (二)
查看>>
[INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突。
查看>>
py2与py3差别
查看>>
windows知识点
查看>>
第五章多态课后java_Java程序设计课后练习答案
查看>>
idea无用插件_没用过这些IDEA插件?怪不得写代码头疼
查看>>
linuxliveu盘怎么用_怎么用U盘重装系统?
查看>>