【问题标题】:Storing website content: database or file?存储网站内容:数据库还是文件?
【发布时间】:2013-11-19 14:37:32
【问题描述】:

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

我看不出为什么不直接使用数据库来存储内容的理由,但这是我第一次使用数据库,感觉有点不对。

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

【问题讨论】:

  • To BLOB or Not To BLOB。顺便说一句 - 征求意见不适合 StackExchange Q&A 格式。
  • 好吧,我想了解每个选项的技术优势或劣势。我并不认为这完全是一种意见。我实际上正在寻找做出任何选择的事实后果。感谢您的链接。

标签: database storage


【解决方案1】:

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

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

迫使我将所有东西都放入数据库的一些好处是

  1. 轻松搜索:您可以在文本(特别是主要内容)上运行 mysql LIKE 之类的查询。

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

  3. GETTING INPUT FROM USER:如果您希望用户给您输入,将他的输入保存在数据库中是有意义的,将其转义并在需要时对其进行操作。

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

  5. 在文件系统中总是存在文件丢失、文件名不同、文件标题不同等问题

  6. 在显示之前将用户输入添加到数据库之前,我不会对其进行转义。这种方式不会将永久性更改存储到文本中。(我不知道这是否可以)

【讨论】:

  • 您希望将其存储在与网站相同的服务器上的数据库中还是存储在其他地方?从您希望拥有一个安全的 CMS 的角度出发。
【解决方案2】:

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

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

两大好处是:

  1. 由于数据库负载减少而提高性能
  2. 编辑文本内容很容易。

【讨论】:

    【解决方案3】:

    我是根据我的经验给cmets的,

    除了附件,你可以在数据库中存储东西,为什么管理内容,备份,恢复,查询,搜索特别是全文搜索会很容易。

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

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

    将附件保存在数据库或文件系统中是对文件的重要级别。

    【讨论】:

      猜你喜欢
      • 2010-10-13
      • 2010-11-07
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2020-12-03
      相关资源
      最近更新 更多