存储网站内容:数据库还是文件?

时间:2012-03-21 10:53:33

标签: database storage

我正在建立一个网站,我打算发布各种帖子,比如教程,文章等。我将用php管理它,但是当涉及到存储每个帖子的内容时,将显示的文本,更好的选择:使用单独的文本文件或将其添加为数据库中的每个条目?

我没有看到为什么不直接使用数据库存储内容的原因,但这是我第一次使用数据库而且感觉有点不对。

你在这件事上有什么经验?

3 个答案:

答案 0 :(得分:3)

好的朋友我再次访问这个问题是为了那些读过这个答案的人的利益。经过大量的反复试验,我得出的结论是,在数据库中保存文本非常方便,易于操作。因此,我的所有数据现在都在数据库中。以前我在数据库中有一些细节,文件部分在文件中,但现在我已将所有数据移到数据库中。

唯一的问题是,在编辑帖子时,标题,标签或主题等字段会在简单的html表单中更改。但是对于主要内容我创建了一个文本区域。但是我只需要将它从文本区域剪切并复制到我最喜欢的文本编辑器中。并在编辑后复制并粘贴回来。

迫使我把所有东西放在数据库中的一些好处是

  1. EASY SEARCH:你可以在你的文字(特别是主要内容)上运行像mysql LIKE这样的quires。

  2. EASY ESCAPING:您可以轻松地对数据运行命令以转义特殊字符并使其适合显示等。

  3. 从用户获取输入:如果您希望用户为您提供输入,则将其输入保存在数据库中,将其转义并在需要时对其进行操作是有意义的。

  4. 移动表,备份,合并两个记录,按顺序安排具有相似内容的帖子等等功能在数据库中比文件系统更容易。

  5. 在文件系统中总是存在丢失文件,不同文件名,不同标题显示错误文件等问题等。

  6. 在显示之前将其添加到数据库之前,我没有转义用户输入。这样就没有永久性的变化存储在文本中。(我不知道是否可以)

答案 1 :(得分:2)

事实上我也在做像你这样的事情。但是我已经得到了如下所述的结论(几乎与我上面的答案中提到的相同)。我希望你现在必须做出决定,但我仍然会解释它,以便它对未来有用。

我的解决方案:我有一个名为content_table的表格,其中包含有关每篇文章,帖子或其他任何内容的详细信息。文章/帖子的主要(文本部分)放在.php.txt文件的目录中。当用户单击要阅读的文章时,将使用数据库中的信息动态创建文章视图,然后从.txt文件中提取文本部分(我将其称为主要内容)。该数据库包含_content_id_,创建日期作者 catagory 等信息(大部分都成为元标记)。

两个主要好处是:

  1. 性能,因为数据库负载较少
  2. 编辑文字内容很简单。

答案 2 :(得分:1)

我根据自己的经验发表评论

除了附件,您可以将内容存储在数据库中,为什么因为管理内容,备份,恢复,查询,搜索尤其是全文搜索都很容易。

将附件存储在某个文件夹中,并在数据库表中保留路径。

如果你愿意在附件中实现搜索,你可以使用像lucene这样的搜索引擎来搜索静态内容。

保持数据库或文件系统中的附件达到文件的重要级别。