2011-07-16 86 views
0

我想將具有元數據的文檔存儲在Web應用程序中,以便人員可以在層次結構中查看它們。何時將元數據存儲在文件系統而不是數據庫中?

我收集到一個典型的方法是爲每個文檔創建一個數據庫條目,將元數據存儲在數據庫中並將文件存儲在文件系統中。

在文件系統上存儲文檔和元數據似乎更簡單快捷。所以一個目錄可能看起來像這樣

$ ls subdirectory 
.json 
Subsubdirectory 
bar.pdf 
bar.json 
foo.tex 
foo.json 

然後我可以從json文件(或任何我使用的格式)獲取元數據。我可以根據子目錄/ foo.json的內容呈現子目錄/ foo.html。我可以根據子目錄/ .json的內容和其他子json文件的內容呈現subdirectory.html。

我想到的主要缺點是根據元數據文件的內容進行搜索可能會比較困難(儘管我可以基於文件系統級元數據進行搜索)。還有什麼其他的缺點?如果人們使用這種方法,爲什麼我聽不到呢?

編輯:我真的不太在意搜索;如果我建立某種搜索,它可能會在一個單一的,小的目錄。

回答

0

「我可以基於文件系統級元數據進行搜索」 - 您可以這樣做,但這意味着每次搜索時必須從FS讀取所有metdata文件,然後您必須手動處理它。沒有索引,這大致相當於SQL數據庫中的全表掃描(但它甚至更慢)。

一般來說,在FS上存儲數據還有其他一些缺點,爲了持久性,您必須進行復制(因此,如果磁盤死亡,您不會丟失文件),並且如果您的站點是popupar,則可擴展。但是由於您已經將文件存儲在磁盤上,因此無論如何您都必須解決此問題。

+0

除了搜索功能,如果我已經在使用文件系統的文件系統,您似乎對存儲元數據的數據庫和文件系統方法漠不關心。我的看法是否準確? –

+0

您還必須管理兩組權限 - 一個在數據庫中,另一個在文件系統中 - 並保持或多或少同步。 –

+1

我肯定會使用'mongoDB'來存儲'json'。如果您必須搜索或向所有節點添加額外信息,請勿將其存儲在FS上。如果您存儲了大量文件或者流量很大,那麼請不要將它存儲在FS上。 –

相關問題