Php 在数据库或文件中存储帖子正文?

Php 在数据库或文件中存储帖子正文?,php,mysql,blogs,Php,Mysql,Blogs,我正在学习以web为中心的编程,通过写博客,使用PHP和MySQL数据库后端。这将取代我目前的(基于Drupal的)博客 我决定帖子应该包含一些数据:id,userID,标题,内容,发布时间。这是一个很好的数据库表模式。不过,在决定如何组织内容的存储时,我遇到了一些问题 我可以: 使用基于文件的系统。数据库表content将成为本地文件的URL,然后我将读取、格式化和显示该文件 将帖子的全部内容存储在content中(即放入数据库) 如果我使用(1),搜索帖子的内容会有点问题-我会局限于元数据搜

我正在学习以web为中心的编程,通过写博客,使用PHP和MySQL数据库后端。这将取代我目前的(基于Drupal的)博客

我决定
帖子应该包含一些数据:
id
userID
标题
内容
发布时间
。这是一个很好的数据库表模式。不过,在决定如何组织
内容的存储时,我遇到了一些问题

我可以:

  • 使用基于文件的系统。数据库表
    content
    将成为本地文件的URL,然后我将读取、格式化和显示该文件
  • 将帖子的全部内容存储在
    content
    中(即放入数据库) 如果我使用(1),搜索帖子的内容会有点问题-我会局限于元数据搜索,或者在搜索时我必须阅读每个文件的内容(虽然我不知道这会有多大问题-
    grep-ir“string”。
    不会太慢…)。但是,图像(如果有的话)将由URL引用,因此引用
    内容
    至少是一种内部一致的方法,而且我可以轻松地重用内容,因为与SQL数据库文件相比,文本文件非常容易使用

    不过,按照(2)的说法,我可以用一个。然后,在我尝试将
    内容放入元组之前,需要对其进行消毒,而且我受大小限制(尽管我不太可能写4GB的博客文章)。搜索将很容易

    我(目前)不知道哪种方式(a)更容易实施,(b)更容易接受


    我应该走哪条路/这通常是怎么做的?如对(1)或(2)有任何进一步的赞成/反对意见,将不胜感激

    对于“当前一代”,实现数据库几乎是最安全的选择。正如你提到的,这是相当标准的,你概述了所有有趣的东西。大多数SQL实例都有相当强大的全文(或等效)搜索。 您可能需要在所概述的两个架构之间编写同样多的架构,特别是如果您希望其中一个具有另一个的功能奇偶性

    新兴技术是一种密钥/价值存储,通常称为。有了它,您可以将内容和元数据存储到单独的文档中,但要以结构化的方式进行,这样可以使搜索和检索非常快速。一些常见的NoSQL引擎包括和(以及其他)


    最终,这归结为个人偏好,以及一些用例考虑。就便利性和应用而言,您并没有真正概述什么对您来说是重要的。其中任何一个都适合个人或发展博客。用多个贡献者构建一个完整的平台是一个不同的话题。

    13年前,我尝试了你的选项1(为文本内容提供外部文件)——不是用博客,而是用CMS。最后,我把所有的数据都铲回数据库,以便于处理。在数据库上进行全局替换比在文本文件级别上容易得多。由于大量的帖子,你会在目录大小和访问速度方面遇到麻烦,或者你必须管理子目录方案等等。坚持只使用数据库的方法-
    与内置的mysql功能相比,有一些工具可以让您更轻松地使用文本文件,但是使用像mysql和mysqldump这样的命令行客户端,您可以轻松地将任何文本提取到文件系统级别,使用标准工具处理这些文本,并将其重新加载到数据库中。mysql真正缺少的是对regex search/replace的内置支持,但即使如此,如果您愿意重新编译mysql,您也会找到一个补丁。

    索引等将是一个问题,如果您有一个数据库,您可以将数据存储在多个表中,并将它们与外键等关联。