我想将Markdown用于我网站的评论系统,但我偶然发现了以下问题:我应该在数据库中存储什么 - Markdown中的原始评论,HTML中的解析评论,或两者兼而有之?
如果用户需要编辑他的评论,我需要用于查看的HTML版本和Markdown版本。如果我存储Markdown版本,我必须在运行时解析注释。如果我存储HTML版本,我需要在用户需要编辑它时将注释转换回Markdown(我为此找到了Markdownify但它并不完美无瑕)。如果我存储两个版本,我将使用的空间加倍。
什么是最好的选择?另外,Stack Overflow如何处理这个问题?
答案 0 :(得分:16)
存储两者。它违反了数据库规范化的规则,但我认为在这种情况下速度优化是值得的 - 解析大量文本是一个非常慢的操作。
你只需要存储两次,但你可能需要服务数千次,所以这是一个时空权衡。
答案 1 :(得分:13)
存储原始markdown并在运行时解析。将转换后的版本存储在数据库中存在一些问题。
答案 2 :(得分:5)
只需在运行时将Markdown渲染为HTML。
如果您的网站遇到性能问题,Markdown将是您将调整的最后内容之一。即便如此,我怀疑它是否有意义。
只需看看SO使用的实时JavaScript渲染器即可。这很快。
编辑: 对不起,我应该更清楚了。我的意思是在PHP中渲染。你会为自己省下很多头痛 - 你可能还有更重要的事情需要担心。