【问题标题】:How to store lightweight formatting (Textile, Markdown) in database?如何在数据库中存储轻量级格式(Textile、Markdown)?
【发布时间】:2009-01-29 17:07:07
【问题描述】:
我将在我正在进行的项目中实现一种轻量级格式化语言(可能是 Textile,也可能是 Markdown),我想知道如何最好地将它存储在数据库中。
如果用户能够编辑他们发布的内容,对我来说存储原始的、未转换的标记是有意义的,这样用户下次就不必编辑 HTML。但由于内容将比编辑的内容更多地显示,因此存储内容的转换副本也是有意义的,这样就不必在每次页面浏览时都通过 Textile 发送原始内容。
那么,将原始内容和转换后的内容并排存储在数据库中是一种常见的做法吗?有没有更好的办法?
谢谢!
【问题讨论】:
标签:
php
database
markdown
markup
textile
【解决方案1】:
商店降价:
存储html
- 每个视图 = 不处理
- 每次编辑 = 转换为 Markdown 并返回
同时存储
- 每个视图 = 不处理
- 每次编辑 = 编辑后转换为 html
您必须权衡处理成本与存储成本。
【解决方案2】:
您应该明确地存储原始 Textile/Markdown 标记并使用标准 HTTP 缓存内容(Last-modified、Expires-At、ETag)来缓存呈现的页面或仅缓存处理标记的结果。
【解决方案3】:
我目前正在将 Markdown 与 PHP 一起使用。我将降价源存储在数据库中,并根据要求显示转换后的版本。我没有性能问题,对此设置非常满意。
【解决方案4】:
我所看到的确实是将编译后的 HTML 存储在数据库中的单独行中。只需要一行“content”和另一行“content_html”,然后将编译后的 HTML 保存在“content_html”行中。
(您肯定有某种可以覆盖的保存方法来执行此操作吗?)