Как вы можете хранить отформатированные блоки текста (разрывы строк, вкладки, списки и т.д.) в базе данных (ничего конкретного), которые будут отображаться в Интернете (XHTML), при сохранении уровня абстракции, чтобы данные могли быть используется в других приложениях или если структура веб-сайта должна измениться в будущем?
Хранение форматированного текста в БД при сохранении абстракции
Ответ 1
Есть две идеи, которые немного соприкасаются в вашем вопросе - сохранение данных отдельно от контента, чтобы оно могло быть повторно задано, и включение данных форматирования.
Является ли частью данных форматирования данных или просто метаданных?
Разве мы этого не видели раньше; это в основном представляет собой головоломку CSS/HTML.
Если эти блоки текста вписываются в известную схему данных (как предполагает Марио), да, я бы пошел с его ответом, но перечитав ваши вопросы, я отвечу (и предположим), что у вас есть бит форматирования внутри, скажем, тега абзаца, который использовал Марио?
Исходя из идеи, форматирование в основном является частью данных, а не только добавленной дополнительной, я бы предложил принять что-то вроде CSS/HTML-решения. Сохраните текст со стандартными тегами XHTML, готовыми для вашего CSS. Это можно было бы проанализировать, если вы хотите использовать стандартный интерфейс (как в не веб-приложении?), И просто разделите теги и при необходимости замените.
Конечно, вы можете создать свою собственную разметку ([myBitOfText #] вместо < span class= "myBitOfText/" > ), но вы также можете получить один возврат из своей базы данных, который не требует повторного назначения или строки манипуляция.
Ответ 2
Я бы сохранил структуру документа с использованием XML и всегда применял некоторое преобразование XSLT, прежде чем показывать его в веб-браузере. Таким образом, информация может быть адаптирована к различным браузерам или другим обычаям, например, отображать в обычном пользовательском интерфейсе или экспортировать в какой-либо текстовый документ.
Структура должна быть чем-то значимым, а не только форматированием информации. В идеале это будет представление некоторой модели данных для конкретной области.
Конечно, ничто не останавливает вас, если значимая информация является структурой документа, чтобы определить что-то вроде:
<document>
<title>SomeTitle</title>
<paragraph>Some Long paragraph text</paragraph>
</document>
Другим преимуществом использования XML в этом контексте является то, что если ваша база данных поддерживает его (например, Oracle), вы можете запросить содержимое текста.
Мы предполагаем, что текст - это то, что не нужно часто запрашивать, или что контент действительно предназначен только для показа. В противном случае может быть лучше нормализовать базу данных.