我应该如何在 Django 应用程序中为大量文本内容建模?

How should I model large bodies of textual content in a django app?

这是一个关于 best-practice Django 应用程序建模的问题。该项目是一个博客,将展示用类似于 Markdown 或 RST 的东西编写的文章。

我已经查看了一些教程来为我提供一些起点,到目前为止它们都将文章的 body 存储在模型中。这似乎是错误的:我对现代数据库引擎的理解不是最好的,但存储任意长度的文本字段对性能不利。

三种选择:

  1. 将文章模型限制为元数据并创建一个单独的模型来 存储一篇文章的body。至少只有一个table是乱七八糟的!
  2. 将文章模型限制为元数据并将文章 body 存储为 静态文件。
  3. 请教更有经验的人。也许将 body 存储在模型中 毕竟还不错...至少它很容易搜索!

我应该如何为这个应用建模?您如何使您的解决方案可搜索?

在数据库中存储 post 的正文应该不是问题。大多数博客引擎都采用这种方法。它比将它存储在一个单独的模型中更快(如果它在一个单独的模型中,您必须执行 JOIN 才能获取主体),并且可能比将它作为文件存储在文件系统上更快。您没有将正文用作主键,因此长度并不重要。

您绝对可以在数据库中存储相对较大的文本。如果你的意思是性能有两个角度:

  1. 正在搜索。你不应该在数据库中进行自由形式的搜索。您可以使用类似 ElasticSearch 的工具的特定功能。

  2. 提供大量文本。不可避免,当然,如果你想展示它,但是你可以使用GZIP压缩,这将大大减少带宽。