CMS-решение asp.net: лучший механизм для хранения данных в SQL - PullRequest
1 голос
/ 24 ноября 2008

Я работал над несколькими системами CMS, использующими платформу .NET (система управления CMS находится в ASP.NET, а сайт, который отображает содержимое, - это ASP.NET и PHP).

Я традиционно сохранял сгенерированный контент в классах, которые сериализуются в XML, который хранится в MSSQL 2005/2008 в поле varchar (max). Это сделало его удобным для структурной работы с различными потребителями контента, и его можно привязать к классам (для повторного открытия записи CMS и ее редактирования или для веб-сайта потребителя).

Однако мне было интересно, какой тип механизма хранения популярен в других магазинах CMS, и если кому-то нравится или имеет серьезные проблемы с подходом, с которым я наиболее знаком.

Хорошо, плохо, безобразно? Что бы вы сделали?

Ответы [ 3 ]

1 голос
/ 24 ноября 2008

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

  • EntryID
  • UpdatedBy
  • UpdatedDate
  • CreatedBy
  • CreatedDate
  • SortOrder
  • Содержимое (NTEXT)
  • Скрыт (бит)

Я считаю, что это позволяет легко находить данные и ими легко манипулировать независимо от того, кто звонил.

0 голосов
/ 20 февраля 2009

У нас ASP.NET CMS в качестве основного продукта, поэтому я знаком с этой проблемой. Это зависит от того, что вы подразумеваете под «сгенерированным контентом». Если вы имеете в виду пользовательский ввод, то мы храним HTML как ntext и другие элементы страницы, используя структуру таблицы, которая позволяет нам иметь гибкий набор полей для каждого элемента страницы (некоторые настраиваются с использованием одного или двух полей, другие имеют десятки). 1001 *

Основным преимуществом этого является то, что данные в базе данных представляют то, что фактически вводится пользователем. Хранение XML в базе данных SQL - это просто добавление слоя переадресации, который нам не нужен. Возможно, вы пытаетесь заставить SQL работать как хранилище OO, что является типичной проблемой, которую помогает решить ORM.

Одна проблема, с которой вы можете столкнуться, - это проблема повторного использования существующих механизмов поиска SQL с данными XML.

0 голосов
/ 24 ноября 2008

В нашей CMS мы используем структуру, аналогичную описанной Митчелом Селлерсом, но мы разделяем содержимое в своей собственной таблице. Это полезно при оптимизации базы данных и позволяет легко обмениваться функциями для управления версиями контента. Затем у нас есть одна таблица на «тип сущности», например, документы, продукты и т. Д., Где мы описываем сущность.

...