Как подойти к хранилищу уценки в БД для пользовательского контента? - PullRequest
7 голосов
/ 01 июня 2011

Я думал о том, чтобы позволить пользователям редактировать контент сайта с уценкой, так как это просто и легко. Теперь вопрос заключается в том, как сохранить эти входные данные - следует ли преобразовать их в HTML при сохранении, а затем сохранить необработанный HTML-код в базе данных или сохранить текст уценки и повторно анализировать его в HTML при каждом запросе? Следует ли использовать здесь другой подход (записывать статические файлы и т. Д.)? Мне было просто интересно, как подойти к этой проблеме и как такие сайты, как stackoverflow, делают это. спасибо.

1 Ответ

12 голосов
/ 01 июня 2011

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

Если вы хотите отредактировать контент после его создания, вам понадобится оригинальная Markdown, поскольку с ней, вероятно, будет проще работать, чем с некрасивой Markdown, появившейся в конвертере Markdown-to-HTML. Сохранение разметки также облегчит отслеживание истории изменений или корректировку формата HTML в будущем.

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

Если у вас есть только уценка, вы платите дополнительно за каждый показ. Если у вас есть только HTML-код, вы получите уродливую и нечитаемую / не редактируемую Markdown. Если у вас есть оба, вы платите за немного места на диске, но получаете возможность легко перегенерировать ваш HTML с другой внутренней структурой, легким отслеживанием истории изменений, легким редактированием, и вы получите дешевые дисплеи в качестве приятного побочного эффекта. Кроме того, хранение обоих позволяет легко хранить фрагменты для массовых списков (например, списки /questions на SO), и эти списки будут дешевыми, потому что вы сбрасываете данные прямо из хранилища на страницу с минимальной обработкой.

...