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


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

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

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

Спасибо!

Author: Justin Stayton, 2009-01-29

4 answers

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

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

Хранить html

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

Хранить оба

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

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

 25
Author: cjk, 2009-01-29 17:12:03

Вы должны определенно хранить оригинальную разметку текстиля/уценки и использовать либо стандартные материалы для кэширования HTTP (Последнее изменение, срок действия, ETag) для кэширования отображаемых страниц, либо просто кэшировать результат обработки разметки.

 1
Author: Anton Gogolev, 2009-01-29 17:09:49

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

 1
Author: Sampson, 2009-01-29 17:10:45

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

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

 1
Author: winsmith, 2009-01-29 17:11:02