Лучшая практика, как хранить HTML в столбце базы данных - PullRequest
4 голосов
/ 15 июня 2010

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

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

Мой вопрос заключается в том, должен ли я сжать HTML, возможно, использовать JSON или какой-либо другой формат для простого хранения и извлечения HTML из столбца базы данных. Каков наилучший способ хранения содержимого HTML в базе данных? Или просто сохранить его в том виде, в котором я сейчас нахожусь в виде экранированного столбца текста?

Ответы [ 3 ]

1 голос
/ 01 мая 2012

Если то, что вы пытаетесь сделать, это сохранить HTML для повторного отображения, что плохого в том, чтобы сохранить его как есть, а затем просто извлечь его через сохраненный процесс и повторно отобразить его для них при необходимости?

Скажем, у вас есть HTML-страница, на которой можно выбрать какой-либо идентификатор из списка, либо на странице ThickBox, либо из опции выбора.

Обычно для такой ситуации вы, вероятно, запросите БД через$ Ajax, возможно, JSon, или нет.

Тогда результатом, отправленным обратно на вызов $ Ajax, будут ваши результирующие данные.

Затем вы заменяете Div, который содержит ваш SpreadSheet, на DB SpreadSheet.

Таким образом, в ответ на исходный вопрос вы можете сохранить SpreadSheet с каким-то идентификатором, сохраняя его как HTML-код Div.

При получении вы просто заменяете Div HTML, с чем вы сохранили.

0 голосов
/ 16 июня 2010

Вам, вероятно, следует разбить пул и проанализировать таблицу (возможно, с использованием HTML-анализатора), так как в противном случае вы рискуете сохранить хранимый JavaScript в данных таблицы.(Это означает, что содержимое ячейки также должно быть проанализировано).Данные все еще могут храниться в виде большого двоичного объекта (может быть, сжатого CSV или JSON), но вы должны убедиться, что они не повреждают.

0 голосов
/ 15 июня 2010

Зависит от размера HTML. Вы можете сохранить его как двоичный BLOB после архивирования. В большинстве случаев лучше всего хранить данные непосредственно после экранирования символов SQL, что может вызвать проблемы.
Как много раз спрашивали, почему вы храните вид вместо модели?

...