Intereting Posts
Является ли redis на Heroku возможным без аддона? Членство в aspnet для zend php MySQL / SQL извлекает первые 40 символов текстового поля? текст появляется в левом верхнем углу моего сайта wordpress Как использовать array_unique для массива массивов? Вставить текущую дату в формате даты и времени mySQL Im только получение одного набора результатов при попытке использовать mysql_fetch_array () Как маршрутизировать контроллеры в подпапках с помощью codeigniter 3? Предотвращение загрузки из удаленного источника, если размер файла больше заданного размера Корреляция Пирсона в PHP изменить адрес электронной почты отправителя в php-форму получателю DateTime :: diff () не зависит от часовой пояс, но всегда возвращает одинаковое значение Заменить множественную новую строку, вкладку, пробел Как получить текст статьи по идентификатору статьи в Joomla? Если CURLOPT_SSL_VERIFYPEER является ложным, передача данных больше не защищена?

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

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

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

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

Благодаря!

Solutions Collecting From Web of "Как хранить легкое форматирование (Textile, Markdown) в базе данных?"

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

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

Сохранить html

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

Храните оба

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

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

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

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

То, что я видел, – это действительно хранить скомпилированный HTML в отдельной строке в базе данных. Просто добавьте один контент «content» и еще один «content_html» и сохраните скомпилированный HTML в строке «content_html».

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