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

写在前面

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

系列文章

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

思路

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

1dbe78d4c485d6934c76361b59914d37.png

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

所以MyFile类如下:

///

///我的文件信息///

public classMyFile

{

[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传到服务端就行。修改文件夹更简单了。出现今天的问题,是在开始这个项目的时候,没有考虑太深入,就是想着想到哪儿就写到哪儿,没有从整体去想细节问题。导致现在,该来该去的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值