2013-03-26 33 views
2

我正在構建將存儲文章的自定義CMS系統。自定義CMS - 存儲內容

在db中存儲文章的正確方法是什麼?鑑於一篇文章可能由單個段落或任意數量的段落組成,並且可能包含圖像,將每個段落存儲在數據庫的不同字段似乎不切實際。

我已經看過Wordpress如何存儲帖子,它似乎將原始HTML包含在單個字段`post_content'中。這是一種被接受的方法嗎?我用這種方法看到的缺點是,對於每篇文章,還會存儲任何html標記。如果我只存儲了原始文本,則顯示文章的動態頁面只會包含一次html標記。但那麼如何去除paragrpahs和圖像之間的差異呢?

有什麼想法?

謝謝。

+0

可以將圖像上傳到服務器上的某個文件夾,然後在文本塊中包含''標籤。我想大多數地方做更大的文本字段使用某種文本blob,這對於我認爲你會在這裏找到的mysql:http://stackoverflow.com/a/332805/1618257 – 2013-03-26 22:21:57

回答

3

選擇的字段將是一個BLOB類型(例如TEXT)。

然而,存儲的數據是另一回事,而且實際上取決於您的實施。我已經在類似的系統工作,在過去存儲的數據爲:

  • XML - 這會轉換和應用層轉換成HTML自定義XML標記。此方法還意味着您可以使用XPATH查詢來執行額外的數據查詢。
  • WMD - 將數據存儲爲WMD意味着沒有任何HTML標籤可以幫助防範跨站點腳本攻擊(XSS)
  • HTML這是最簡單和快速的數據挖掘方式。如果您對輸入進行清理,這將有助於XSS和其他您不想要的數據,但這會增加WMD可以從開始解決的更復雜的問題。

如果您正在尋找來自鏈接圖像的某種分析數據,我會建議將圖像URI存儲在另一個表中,並鏈接到URL的主鍵ID。這意味着您可以檢查並且不重複圖片網址。如果您在域中上傳和存儲圖像,圖像URI也可以是ID。

+0

謝謝 - XML方法看起來很有趣。使用自定義XML標籤...我會簡單地使用內容等標籤,然後編寫一個腳本來從標籤中提取內容? – user2056238 2013-03-27 00:35:31

+0

@ user2056238是的,如果您有標籤,您可以根據需要提取數據和圖像 - 甚至可以開始包含屬性,例如,您可以使用數據庫本身的XPATH執行直接查詢。 – Steve 2013-03-27 11:30:31

+0

等等,然後我會將整個XML feed作爲單個BLOB類型存儲嗎?然後我可以抓住它並使用XML閱讀器類。我實際上是在今天將其用於另一個應用程序,但我可以看到如何將其輕鬆用於我的CMS。 – user2056238 2013-03-27 18:48:55