Хранение форматированного текста в БД при сохранении абстракции - PullRequest
19 голосов
/ 09 октября 2008

Как вы будете хранить отформатированные блоки текста (разрывы строк, табуляции, списки и т. Д.) В базе данных (ничего конкретного) для отображения в Интернете (XHTML), сохраняя при этом уровень абстракции, чтобы данные могли быть используется в других приложениях или если в будущем структура сайта изменится?

Ответы [ 2 ]

4 голосов
/ 09 октября 2008

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

Является ли форматирование данных частью данных или только метаданными?

Разве мы не видели этого раньше; в основном это выглядит загадкой CSS / HTML.

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

Исходя из идеи, что форматирование - это, в основном, часть данных, а не просто дополнительная информация, я бы предложил принять что-то вроде решения CSS / HTML. Храните текст со стандартными тегами XHTML, готовыми для вашего CSS. Затем его можно проанализировать, если вы хотите использовать стандартный пользовательский интерфейс (как в не веб-приложении?) И просто удалить теги и заменить их при необходимости.

Конечно, вы могли бы создать свою собственную разметку ([myBitOfText #] вместо ), но вы также можете получить один возврат из вашей базы данных, который не требует повторного использования или манипуляции со строками.

4 голосов
/ 09 октября 2008

Я бы сохранял структуру документа с использованием XML и всегда применял некоторые преобразования XSLT, прежде чем показывать их в веб-браузере. Таким образом, информация может быть адаптирована к различным браузерам или другим видам использования, таким как отображение в обычном интерфейсе пользователя или экспорт в какой-либо простой текстовый документ.

Структура должна быть чем-то значимым, а не только форматировать информацию. В идеале это было бы представление некоторой предметно-ориентированной модели данных.

Конечно, ничто не мешает вам, если значимой информацией является структура документа, определить что-то вроде:

<document>
  <title>SomeTitle</title>
  <paragraph>Some Long paragraph text</paragraph>
</document>

Еще одним преимуществом использования XML в этом контексте является то, что если ваша база данных поддерживает его (например, Oracle), вы можете запросить содержимое текста.

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

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