I want to use Markdown for my website’s commenting system but I have stumbled upon the following problem: What should I store in the database – the original comment in Markdown, the parsed comment in HTML, or both?
I need the HTML version for viewing and the Markdown version if the user needs to edit his comment. If I store the Markdown version, I have to parse the comments at runtime. If I store the HTML version, I need to convert the comment back to Markdown when the user needs to edit it (I found Markdownify for this but it isn’t flawless). If I store both versions, I’m doubling the used space.
What would be the best option? Also, how does Stack Overflow handle this?
Store both. It goes against the rules for database normalization, but I think it’s worth it for the speed optimisation in this case – parsing large amounts of text is a very slow operation.
You only need to store it twice, but you might need to serve it thousands of times, so it’s a space-time trade-off.