Как сохранить облегченное форматирование (текстиль, Markdown) в базе данных?


Я собираюсь реализовать легкий язык форматирования (возможно, текстильный, возможно, Markdown) в проекте, над которым я работаю, и мне интересно, как лучше хранить его в базе данных.

Если пользователь может редактировать контент, который он публикует, мне кажется, имеет смысл сохранить исходную, не конвертированную разметку, чтобы пользователю не пришлось редактировать HTML в следующий раз. Но так как контент будет отображаться намного больше, чем редактироваться, также имеет смысл хранить преобразованная копия содержимого, так что оригинал не должен быть отправлен через текстиль на каждом просмотре страницы.

Итак, является ли общепринятой практикой одновременное хранение исходного и преобразованного контента в базе данных? Есть ли лучший способ?

Спасибо!

4 18

4 ответа:

Уценка магазина:

  • каждое представление = преобразование
  • каждое редактирование = нет обработки

Хранить html

  • каждое представление = нет обработки
  • Every edit = конвертировать в markdown и обратно

Хранить оба

  • каждое представление = нет обработки
  • Every edit = конвертировать в html после редактирования

Вы должны взвесить свои затраты на обработку и затраты на хранение.

Вы должны определенно хранить исходную разметку Textile/Markdown и использовать либо стандартный материал кэширования HTTP (Last-modified, Expires-At, ETag) для кэширования отрисованных страниц, либо просто кэшировать результат обработки разметки.

В настоящее время я использую Markdown с PHP. Я сохраняю исходный код markdown в базе данных и показываю преобразованную версию по запросу. У меня нет проблем с производительностью, и я очень доволен этой установкой.

То, что я видел, - это действительно хранение скомпилированного HTML в отдельной строке в базе данных. Просто одну строку 'Content' и другой 'content_html', и сохранить скомпилированный HTML в content_html строка.

(наверняка у вас есть какой-то метод сохранения, который вы можете переопределить для этого?)