Как сохранить большой HTML-контент в базе данных?разработка CMS - PullRequest
3 голосов
/ 08 марта 2012

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

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

Работает множество систем CMS, как они реализовали эту функциональность.

Пожалуйстапредложить лучшие идеи, как справиться с этим требованием.

Инструменты, которые я использую: C # .net SQL Server 2005 Asp.net 2.0

Ответы [ 4 ]

5 голосов
/ 08 марта 2012

Если вы используете SQL Sever 2005, почему бы не использовать тип данных VARCHAR(MAX)?

VARCHAR(MAX) и NVARCHAR(MAX) могут содержать то же количество данных, что и старые TEXT и NTEXT (2 ГБ), но они гораздо более гибкие, чем TEXT / NTEXT. Они хранятся на страницах данных того же типа, что и для других типов данных.

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

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

0 голосов
/ 08 марта 2012

Не следует сохранять изображения, HTML или что-либо, что не будет использоваться в инструкциях SQL WHERE.Вместо этого я бы сохранил эти фрагменты HTML-кода и изображения в файловой системе, что-то вроде [PARENT_TABLE_NAME]. [ROW_PRIMARY_KEY] .html.Таким образом, вы освобождаете время базы данных при запросах, так как вы, вероятно, не будете использовать фильтры WHERE с этими фрагментами HTML, и ваши обновления / удаления / вставки HTML не могут быть быстрее и могут быть должным образом кэшированы ОС.

0 голосов
/ 08 марта 2012

Используйте поля BLOB-объектов в вашей базе данных (например, BIGTEXT в MySQL). Затем вы можете передавать свой HTML-контент в поле базы данных. В качестве альтернативы, если вы хотите использовать подход типа документа, сохраните содержимое HTML в виде файла и сохраните местоположение содержимого в вашей базе данных. Последний подход хорош, если вы хотите использовать hadoop и тому подобное для поиска огромного количества контента. Если вы пойдете к чему-то более простому на начальном этапе, я бы остановился на подходе BLOB-объектов, поскольку поиск контента в BLOB-объектах за последние несколько лет прошел долгий путь. Однако имейте в виду, что кластерная версия MySQL (например) не имеет большой поддержки некоторых вещей, которые вам могут понадобиться, таких как xpath.

0 голосов
/ 08 марта 2012

Вы можете прочитать здесь о типах данных большого значения - http://msdn.microsoft.com/en-us/library/ms178158(v=sql.90).aspx

Вы можете использовать типы данных большого значения для хранения до 2 ^ 31-1 байтов данных.Надеюсь, это поможет.

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