WhatsNote多層目錄結構設計
阿新 • • 發佈:2018-11-14
WhatsNote多層目錄結構設計
一、整體結構
整體結構由三部分組成
- 目錄
- 筆記
- 記錄——筆記及目錄的所屬關係。
目錄和筆記為原子資料,目錄與目錄、筆記與筆記、目錄與筆記之間沒有層級關係,分開儲存在2個集合當中。
記錄將目錄與筆記聯絡到一起,建立層級及所屬關係。
二、資料設計
- 記錄
/** 記錄集合 */
RecordDataset extends BaseDataset
/** 記錄 */
RecordEntity extends BaseEntity
String parent; // 父類ID
String type; // 型別,Folder或者Note
ArrayList<String> orderList; // 順序列表
- 目錄與筆記的基類
/** 抽象基類,目錄與筆記的共同屬性 */
FileEntity extends BaseEntity
String name; // 名稱
String desc; // 描述
String alias; // 自動生成的名稱
- 目錄
/** 目錄集合 */ FolderDataset extends BaseDataset
/** 目錄 */
FolderEntity extends FileEntity
- 筆記
/** 筆記集合 */
NoteDataset extends BaseDataset
/** 筆記 */
NoteEntity extends FileEntity
ArrayList<String> tagList; // 標籤列表
三、筆記管理者
NoteManager
用來管理RecordDataset
,FolderDataset
,NoteDataset
。通過NoteManager
,我們可以訪問並管理所有的資料資訊,目錄、筆記、層級結構。
NoteManager
RecordDataset recordDs; // 記錄集合
File recordFile;
FolderDataset folderDs; // 目錄集合
File folderFile;
NoteDataset noteDs; // 筆記集合
File noteFile;
NoteManager
的核心方法
- 讀取指定目錄資料集合
public List<FileEntity> get(String parent);
- 建立目錄及筆記
public FolderEntity createFolder(String parent); // 建立目錄
public NoteEntity createNote(String parent); // 建立筆記
- 刪除目錄及筆記
public void remove(FolderEntity entity);
public void remove(NoteEntity entity);
- 儲存資料
public void save();
- 功能方法
public String getFolderName(String name); // 獲取目錄名稱
public String getNoteName(String name); // 獲取筆記名稱
- 內部方法
RecordDataset getRecordDataset();
FolderDataset getFolderDataset();
NoteDataset getNoteDataset();