一般來說,一個知識管理系統(tǒng)可以考慮的方案主要有以下幾種:
- 全部數(shù)據(jù)進數(shù)據(jù)庫,每次需要使用的時候再從數(shù)據(jù)庫中讀出,通過軟件界面呈現(xiàn)給用戶。
- 文件保留在文件系統(tǒng)中,只把與文件一一對應(yīng)的標簽、描述、評星等數(shù)據(jù)保存在數(shù)據(jù)庫中。
- 不使用數(shù)據(jù)庫,而是生成一個與文件對應(yīng)的描述文件,在該描述文件中記錄對應(yīng)文件的標簽、描述、評星等數(shù)據(jù)。
第 1 種方案最常見,比如 Evernote, OneNote 等都采用這種方案,這種方案自然有很多優(yōu)點,但也有一個明顯缺點:無法與其他軟件合作。比如,如果用 Evernote 來儲存圖片,就無法用看圖軟件直接看圖,也無法用修圖軟件直接修圖。
第 2 種方案也能偶爾見到,一般懂編程的人自己想寫一個軟件來管理本地文件,很可能采用這個方案。
我現(xiàn)在就是想做一個本地的 文件管理工具, 具體來說就是文件的標簽管理工具。本該采用第 2 種方案,但是我突發(fā)奇想,能不能采用最容易被否定的第 3 種方案?
第 3 種方案由于會產(chǎn)生大量小文件,因此被人討厭。但當我真的去把它做出來的時候,經(jīng)過試用,發(fā)現(xiàn)它也有很多好處??!
多倉庫共存
- 采用第 1 種、第 2 種方案時,通常一臺電腦里只能有一個賬號(或倉庫),但我采用第 3 種方案后,發(fā)現(xiàn)多倉庫共存變得非常容易。
- 比如,用戶可能希望把工作和生活分開,建立各自獨立的倉庫。
- 也可能希望對一類文件單獨建立倉庫,比如全部自己拍的照片一個倉庫,除此之外的其他文件一個通用倉庫。
- 由于現(xiàn)在很多人使用筆記本電腦,硬盤容量有限,于是很可能希望在電腦硬盤里建立一個小倉庫,在移動硬盤里建立一個大倉庫,定期把小倉庫的文件移動到大倉庫里。
在不同的倉庫之間交流時,不需要導(dǎo)入導(dǎo)出。
- 如果使用 Evernote, 如果你想把一份筆記發(fā)給朋友,或者你自己有兩個賬號,想把其中一個賬號的筆記移動到另一個賬號里,那就需要先導(dǎo)出筆記,再導(dǎo)入筆記。
- 而采用第 3 種方案就很方便了,直接復(fù)制或剪切即可。
- 比如上面“多倉庫共存”里所述的最后一種情況,把小倉庫的東西移到大倉庫里的情況,采用第 3 種方案就非常非常方便,直接移動文件即可。
隨意移動文件位置,文件夾隨意改名。
- 第 2 種方案有一個缺點,移動文件位置、文件夾改名、文件改名都需要在軟件界面里進行,因為它的數(shù)據(jù)庫必須對應(yīng)文件位置和文件名,一旦移動,就對應(yīng)不上了。
- 而第 3 種方案,信息都在“描述文件”里,只要移動文件的時候把描述文件一起移動即可,信息與文件位置無關(guān)。
- 實際使用中,我發(fā)現(xiàn)移動文件位置和文件夾改名是很頻繁發(fā)生的操作,這導(dǎo)致第 2 種方案很不方便。
局部備份到網(wǎng)盤
- 如果采用第 2 種方案,局部備份到網(wǎng)盤將是一個很麻煩的任務(wù),因為標簽等信息都在數(shù)據(jù)庫里,與文件是分離的,如果只上傳一部分文件到網(wǎng)盤,文件位置(目錄)可能發(fā)生變化,數(shù)據(jù)庫就對應(yīng)不上。
- 而如果采用第 3 種方案,那就非常輕松、簡單了,完全不受文件位置(目錄)的影響,網(wǎng)盤那邊隨便建一個文件夾即可,只要連同描述文件一起,就可以心情輕松地上傳, 重點:信息全在描述文件里! 不需要備份數(shù)據(jù)庫,不需要管文件位置。
容易定制,容易擴展
- 我根據(jù)上述的理念,寫了一堆處理描述文件的腳本程序,但我沒有把它們整合為一個大而全的軟件。
- 雖然我寫了一堆程序,有 GUI 界面,可以對文件添加標簽、修改標簽,對標簽進行一些簡單管理。但說做了一個軟件卻不太準確,因為這套東西甚至沒有一個固定的形態(tài)。
- 比如我這套東西里面最最核心,最重要的就是那個所謂的“描述文件”,是一個 json 文件,但就連它都是可以隨意定制的。
- 準確來說,我是考慮到上面所述很少人采用的第 3 種方案的優(yōu)點,做了一個嘗試和示范,結(jié)果發(fā)現(xiàn)還蠻好用的。
- 由于這個理念本身非常簡單,就是處理 json 文件而已,任何編程語言,最基本的編程知識就能做到,因此如果你也想嘗試用第 3 種方案來打造自己的知識管理系統(tǒng),大可以參考這個辦法,用自己熟悉的技術(shù)棧來做。
|