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

时间:2009-01-29 17:07:07

标签: php database markdown markup textile

我将在我正在开发的项目中实现一种轻量级格式化语言(可能是Textile,也许是Markdown),我想知道如何最好地将它存储在数据库中。

如果用户能够编辑他们发布的内容,那么对我来说有意义的是存储原始的,未转换的标记,以便用户下次不必编辑HTML。但由于内容的显示比编辑的要多得多,因此存储转换后的内容副本也是有意义的,这样就不必在每个页面视图上通过Textile发送原始内容。

那么,通常的做法是将原始内容和转换后的内容并排存储在数据库中吗?还有更好的方法吗?

谢谢!

4 个答案:

答案 0 :(得分:25)

商店降价:

  • 每个视图=转化
  • 每次编辑=无处理

存储html

  • 每个视图=无处理
  • 每次编辑=转换为降价并返回

存储两者

  • 每个视图=无处理
  • 每次编辑=编辑后转换为html

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我目前正在使用Markdown和PHP。我将markdown-source存储在数据库中,并根据请求显示转换版本。我没有性能问题,对此设置非常满意。

答案 3 :(得分:1)

我所看到的确实是将编译后的HTML存储在数据库中的单独行中。只需要一行'content'和另一行'content_html',然后将编译后的HTML保存在'content_html'行中。

(当然你有某种保存方法可以覆盖它来执行此操作吗?)