【问题标题】:What datatype is best for storing articles in SQL database?哪种数据类型最适合在 SQL 数据库中存储文章?
【发布时间】:2012-03-02 00:57:11
【问题描述】:

我正在为我的网站创建自定义 CMS,并且我将在 mysql 数据库中存储文章(每篇文章的文本和图像)。哪种数据类型最适合该任务?

【问题讨论】:

  • 假设 TEXT 是最好的数据类型。
  • 我不知道您为什么要将图像存储在数据库中的确切原因,但我相信将图像保存在机器的本地驱动器上并仅将“路径”存储在数据库中是件好事。这将有利于性能。如果我错了,请忽略我。我不是 CMS 专家。问候

标签: php mysql sql


【解决方案1】:

您不应该尝试将文本和图像存储在单个字段中,在这种情况下,您可能根本不应该将图像存储在数据库中。

最好的解决方案是在您的文章中使用某种标记系统 - 最简单的可能是过滤后的 html 子集 - 以纯文本形式存储在您的数据库中,然后在浏览器中解析大大地。显然,如果您使用过滤后的 html,则不需要编写任何特殊代码来解析它,但采用这种方法确实会引发可能的安全问题。

其他可供调查的选项包括 Markdown(本网站使用的系统)以及 BBCode(主要由在线论坛使用)以及许多其他选项。

总结 - 不要将图像和文本存储在一个字段中。存储文本,并解释该文本以在您的文章中加载图像和其他媒体。

【讨论】:

    【解决方案2】:

    将图像另存为 VARCHAR,但只有图像名称(和/或位置,取决于您的 cms 有多大),将文本另存为 - TEXT

    【讨论】:

      【解决方案3】:

      在我看来,使用包含 HTML 字符的文章文本,这就是我使用的。但是还有很多其他的事情需要考虑。这取决于您的文章的内容。在您的图像中,您将只存储图片的路径,除非您打算存储图片本身。

      【讨论】:

        【解决方案4】:

        请参阅此article,其中 Microsoft 坚称 text 数据类型将消失,因此不应在新开发中使用。替代方法是用于文本的 varchar 和 nvarchar 以及用于图像的 varbinary。

        【讨论】:

          【解决方案5】:

          分别存储图像和文本。假设您正在尝试将二进制图像存储在数据库中,我建议将图像存储为 BLOB 数据类型,将文本存储为 TEXT。

          不要将 VARCHAR 用于文章文本,因为它不会动态扩展超过您设置的大小。

          【讨论】:

            【解决方案6】:

            VARCHAR 将是存储文本文章的最佳选择,因为文本和图像数据类型将来会消失。

            对于图像,您可以将它们存储在类似于用于 css/js 的文件夹中,并将其 src 值存储在数据库中。这在速度和存储方面都很有效。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-07-23
              • 2021-11-16
              • 1970-01-01
              • 2012-06-07
              • 1970-01-01
              • 2023-01-28
              • 2017-03-25
              • 2011-07-26
              相关资源
              最近更新 更多