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