如何在数据库中存储轻量级格式(Textile,Markdown)?

19

我将在我正在开发的项目中实现一种轻量级的格式语言(可能是Textile,也可能是Markdown),我想知道最佳的存储方式。

如果用户可以编辑他们发布的内容,那么我认为最好将未转换的标记语言存储起来,这样用户下次编辑内容时就不必编辑HTML了。但由于该内容将被大量显示而不是编辑,因此还有必要存储一个转换过的副本,以便每次页面查看时都不必传输原始版本。

所以,常见的做法是在数据库中同时存储原始和转换后的内容吗?还有更好的方法吗?

谢谢!

4个回答

25

存储 Markdown:

  • 每次查看 = 转化
  • 每次编辑 = 无需处理

存储 HTML

  • 每次查看 = 无需处理
  • 每次编辑 = 转换为 Markdown 再转回来

两者都存储

  • 每次查看 = 无需处理
  • 每次编辑 = 编辑后转换为 HTML

您必须权衡处理成本和存储成本。


1
你应该绝对存储原始的Textile/Markdown标记,并使用标准的HTTP缓存机制(Last-modified、Expires-At、ETag)来缓存渲染页面,或者只缓存处理标记的结果。

1

我目前正在使用PHP的Markdown。我将Markdown源代码存储在数据库中,并在请求时显示转换后的版本。我没有性能问题,对这个设置非常满意。


1
我所看到的是将编译后的HTML存储在数据库中的单独行中。只需有一个“内容”行和另一个“content_html”行,并将编译后的HTML保存在“content_html”行中。
(你肯定有一些可以覆盖以执行此操作的保存方法,对吧?)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接