2008-11-24 66 views
1

我已經在使用.NET平臺的許多CMS系統上工作(CMS管理系統位於ASP.NET中,並且呈現內容的站點既是ASP.NET又是PHP)。asp.net CMS解決方案:用於在SQL中存儲數據的最佳機制

我傳統上將生成的內容存儲在序列化爲XML的類中,該類存儲在MSSQL 2005/2008的varchar(max)字段中。這使得內容的不同消費者可以在結構上方便地使用它,並且可以綁定到類(用於重新打開CMS記錄並對其進行編輯或用於消費網站)。

但是,我一直在想,什麼類型的存儲機制很受其他CMS商店的歡迎,如果有人喜歡或者對我最熟悉的方法有嚴重問題。

好,壞,醜?你會怎麼做?

回答

1

我個人將數據視爲將存儲在系統中的任何其他數據,例如,我有一個爲DNN構建的模塊,用於存儲文本數據的集合,我在表中爲它創建了以下列集合。

  • ENTRYID
  • UpdatedBy
  • UpdatedDate
  • CreatedBy
  • CreatedDate
  • SortOrder的
  • 含量(NTEXT)
  • 隱藏(位)

我發現這樣可以很容易地找到數據,並且無論調用者如何操作都很容易。

0

在我們的CMS中,我們使用與Mitchel Sellers描述的類似的結構,但是我們將內容分離到它自己的表中。這在優化數據庫時非常有用,並使我們可以輕鬆共享內容版本化功能。然後,我們在每個「實體類型」(如文檔,產品等)中都有一個表格,我們在其中描述該實體。

0

我們有一個ASP.NET CMS作爲我們的主要產品,所以我很熟悉這個問題。這取決於你「生成的內容」的含義。如果你的意思是用戶輸入,那麼我們使用表格結構將HTML存儲爲ntext和其他頁面元素,這使得我們可以爲每個頁面元素提供一組靈活的字段(有些使用一個或兩個字段進行配置,其他字段有幾十個字段)。

這樣做的主要好處是數據庫中的數據代表了用戶實際輸入的內容。將XML存儲在SQL數據庫中只是增加了一層我們不需要的重定向。您可能試圖讓SQL像OO商店那樣行事,這是ORM幫助解決的一個典型問題。

您可能遇到的一個問題是難以在XML數據中重複使用現有的SQL搜索機制。

相關問題