您何时将元数据存储在文件系统而不是数据库中?

时间:2011-07-16 17:28:53

标签: database metadata

我想将包含元数据的文档存储在Web应用程序中,以便人员可以在层次结构中查看它们。

我认为一种典型的方法是为每个文档创建一个数据库条目,在数据库中存储元数据并将文件存储在文件系统中。

将文档和元数据存储在文件系统上似乎更简单,更快捷。所以目录可能看起来像这样

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

然后我可以从json文件(或我使用的任何格式)中获取元数据。我可以根据子目录/ foo.json的内容渲染子目录/ foo.html。我可以根据子目录/ .json的内容和其他子json文件的内容来渲染subirectory.html。

我想到的主要缺点是,根据元数据文件的内容进行搜索可能比较困难(尽管我可以根据文件系统级元数据进行搜索)。还有哪些其他缺点?如果人们确实使用这种方法,我为什么不听说呢?

编辑:我并不是那么关心搜索;如果我构建某种搜索,它可能会在一个小的目录中。

1 个答案:

答案 0 :(得分:0)

“我可以根据文件系统级元数据进行搜索” - 您可以这样做,但这意味着每次进行搜索时都必须从FS读取所有元数据文件,然后您必须手动处理它。没有索引,这大致相当于SQL数据库中的全表扫描(但它甚至更慢......)。

一般情况下,在FS上存储数据还有其他一些缺点,您必须进行复制以保持持久性(因此,如果磁盘死亡,您不会丢失文件),并且如果您的站点是popupar,则需要进行复制以实现可伸缩性。但是,由于您已经将文件存储在磁盘上,因此无论如何都必须解决此问题。