Очистка данных и хранение БД - PullRequest
0 голосов
/ 17 февраля 2011

Если у меня есть следующие данные, что является лучшим вариантом с точки зрения хранения базы данных.

Here is text<br><br>Here is some more text

Я вижу, что у меня есть 3 варианта:

  • Сохранять в БД в том виде, в котором она будет декодироваться во время выполнения: <p>hello</p>
  • Расшифруйте и сохраните в БД: <p>hello</p>
  • Полностью удалите метки: Hello

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

Ответы [ 2 ]

1 голос
/ 17 февраля 2011

В зависимости от ваших требований я предлагаю либо удалить теги, либо сохранить некодированную версию.

Если вам не нужны теги, вы можете удалить их и сохранить простой текст.

Если вам необходимо сохранить теги и форматирование, проще сохранить некодированную версию. Работать с реальными тегами намного проще. Кроме того, это ответственность представления, чтобы закодировать вывод. На самом деле, это строго зависит от того, где вы собираетесь печатать строку.

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

0 голосов
/ 17 февраля 2011

Преобразуйте данные в каноническую форму и сохраните их. То есть, вы должны хранить <p>Hello</p> или Here is text&lt;br&gt;&lt;br&gt;Here is some more text (хотя я сомневаюсь, что это расшифровка, которую вы намеревались для своего примера).

Затем вы можете искать, не беспокоясь о том, как он был закодирован (например, &Ouml;, &#214; или &#xD6;?), И просто кодировать его в любой формат, подходящий для отображения при рендеринге. 1010 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...