Как сохранить комментарии Скидки с цены

Я хочу использовать Скидку с цены для системы комментария своего веб-сайта, но я наткнулся на следующую проблему: Что я должен сохранить в базе данных - исходный комментарий в Скидке с цены, проанализированный комментарий в HTML или обоих?

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

Каков был бы наилучший вариант? Кроме того, как Переполнение стека обрабатывает это?

15
задан liviucmg 5 February 2010 в 21:42
поделиться

3 ответа

IMHO необходимо рассмотреть возможность отказа от замены членов CONST.

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

-121--3842613-

Я не думаю, что URL-адреса, на которые ссылаются кнопки, являются каким-либо магическим, поэтому вы, вероятно, могли бы добавить другую кнопку с отсутствующей функциональностью, просто переопределяя шаблон администратора для http://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates

-121--4501527-

Храните оба. Это идет вразрез с правилами нормализации базы данных, но я думаю, что это стоит того для оптимизации скорости в данном случае - разбор больших объемов текста очень медленная операция.

Вам нужно хранить его только дважды, но вам может понадобиться обслуживать его тысячи раз, так что это компромисс между пространством и временем.

16
ответ дан 1 December 2019 в 01:38
поделиться

Храните исходную уценку и выполняйте разбор во время выполнения. Есть несколько проблем с хранением преобразованной версии в базе данных.

  1. Если пользователь хочет отредактировать свой комментарий, вам нужно конвертировать парсинг в исходную уценку
  2. Пространство в базе данных (всегда следуйте правилу, что если вам не нужно хранить его, не надо)
  3. Изменения, внесенные в парсер уценки, должны выполняться на каждом комментарии в базе данных, а не просто появляться во время выполнения.
13
ответ дан 1 December 2019 в 01:38
поделиться

Просто визуализируйте Уценка до HTML во время выполнения.

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

Достаточно взглянуть на средство визуализации JavaScript в реальном времени, которое использует SO. Это быстро.

Изменить: Извините, я должен был быть более ясным. Я имел в виду просто рендеринг на PHP. Вы избавите себя от головной боли - и, вероятно, у вас есть более важные дела, о которых нужно беспокоиться.

5
ответ дан 1 December 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: