mvc5 ef6 mysql_[实战]MVC5+EF6+MySql企业网盘实战(17)——思考2
寫在前面
今天吃飯回來,突然有一個更好的想法,這里做一下記錄。
系列文章
[實戰(zhàn)]MVC5+EF6+MySql企業(yè)網(wǎng)盤實戰(zhàn)(17)——思考2
思路
平時如果要獲取電腦上的文件,大都會采用遞歸的方式,所以就想到這樣一個表結(jié)構(gòu)。如圖:
id是文件或者文件夾的自增id,pid則是文件或者文件夾所在的文件夾的id,也就是父id。這樣設(shè)計數(shù)據(jù)表的好處是,上傳文件,創(chuàng)建文件夾,修改文件夾,只需要考慮當(dāng)前對象就行,不需要再去考慮路徑的問題。修改名稱就做到只是修改名稱就行,不再考慮修改文件夾的名稱對找不到文件的問題了。
所以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; }///
///文件或者文件夾圖標(biāo)///
[Display(Name = "文件圖標(biāo)")]
[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; }
}
總結(jié)
這樣的操作更方便,前段傳參的時候,只需要將當(dāng)前對象的id,pid傳到服務(wù)端就行。修改文件夾更簡單了。出現(xiàn)今天的問題,是在開始這個項目的時候,沒有考慮太深入,就是想著想到哪兒就寫到哪兒,沒有從整體去想細(xì)節(jié)問題。導(dǎo)致現(xiàn)在,該來該去的。
總結(jié)
以上是生活随笔為你收集整理的mvc5 ef6 mysql_[实战]MVC5+EF6+MySql企业网盘实战(17)——思考2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招联金融冻结额度多久恢复
- 下一篇: 电信测速网速在线(在线网络测速电信)