2012-03-08 23 views
3

我正在爲我的網站開發內容管理系統。我面臨的問題是如何在數據庫中保存大量的html內容。存儲過程將其參數限制爲8000個字符,並且不接受超過此長度的任何內容。所以我如何將我的內容存儲在數據庫中。如何在數據庫中保存大型html內容?開發CMS

或者還有其他更好的方法來完成這項工作,在哪裏保存html內容。此外,如何存儲圖像(內部html)或其鏈接,實現方案是什麼?

很多CMS系統正在運行,他們是如何實現這一功能的。

請提出更好的想法,如何處理這個要求。

工具我使用: C#.NET SQL Server 2005中 Asp.net 2.0

回答

5

如果你使用SQL Sever的2005,爲什麼不使用VARCHAR(MAX)數據類型?

VARCHAR(MAX)NVARCHAR(MAX)可容納相同的數據量,老TEXTNTEXT可以舉行(2 GB),但他們比TEXT/NTEXT靈活得多。它們存儲在用於其他數據類型的相同類型的數據頁中。

至於如何處理圖像,我的建議是將它們存儲在文件系統中,並簡單地使用指向它們的正常img標記。

這對於CMSes來說是相當典型的,用於將文章內容存儲在表中,稍後將其嵌入到某個模板中。儘管像MongoDB這樣的文檔數據庫在這種類型的應用程序中的應用越來越普遍。

+2

+1 - 同意。指定max可以達到2^31-1字節(2 GB),這應該足夠了。 – ChrisBD 2012-03-08 09:52:10

+0

+1。這是一種「RTFM」類型的答案,因爲OP聲明限制超出了他的想象,而不是從產品開始(SP#s的限制參數長度與陳述不符)。 – TomTom 2012-03-08 10:01:40

+1

@MuhammadIdress,爲什麼這個答覆不被接受? – Jodrell 2012-10-16 13:27:05

0

在數據庫中使用blob字段(例如MySQL中的BIGTEXT)。然後,您可以將HTML內容流式傳輸到數據庫字段中。或者,如果您想採用文檔類型的方法,請將HTML內容另存爲文件,並將內容的位置保存在數據庫中。如果你想使用hadoop等搜索大量的內容,後一種方法是很好的。如果你最初想要的是更簡單的方法,那麼我會採用blob方法,因爲在過去的幾年裏,對blob內容的搜索已經走過了很長的路。但是,請注意,MySQL的集羣版本(例如)對您可能需要的某些內容(如xpath)沒有很好的支持。

0

您不應該保存圖像,HTML或任何不會在SQL WHERE語句中使用的內容。相反,我會將這些HTML代碼片段和圖像保存在文件系統中,名稱類似[PARENT_TABLE_NAME]。[ROW_PRIMARY_KEY] .html。這樣您在查詢時釋放數據庫時間,因爲您可能不會將WHERE過濾器與這些HTML片段一起使用,並且您的HTML更新/刪除/插入操作可能不會更快,並且可以由操作系統正確緩存。

相關問題