2012-11-01 33 views
2

我一直在一個項目中,用戶可以創建簡單的模板和發展他的網站pages.He可以保存它們,也把它在互聯網上一次completed.Now我的問題文檔數據庫來存儲HTML內容

  1. 當用戶使用他的模板時,他可以保存他的工作副本並在以後回來(類似於起草電子郵件)。
  2. 用戶保存的這個工作通過解析模板頁面保存在xml文件中。
  3. 我正在考慮一個替代方案,將整個頁面本身存儲在一個文檔數據庫中,以防止一個唯一的用戶標識,這樣就不需要進行任何解析並減少負載和時間。

現在我的問題

  1. 就是我使用文獻數據庫或NoSQL的替代XML想可能嗎?
  2. 如果是哪一個會更多靈活工作和易於維護?
  3. 我使用php和mysql進行其他操作,所以我需要doc DB來存儲用戶創建的模板的html。
+1

任何理由不使用現有的CMS? – 2012-11-01 02:10:32

+0

最終目標是設計一個系統,用戶可以創建一個完整的網站,類似於WIX,這個想法正在建設中,但目前的情況是我所描述的。一個CMS會更前端,然後存儲模板我猜。如果你說的是類似於WordPress的東西,那麼它目前不能達到這個水平,但不能說未來。 ;):P – KillABug

+0

是的,許多NoSQL數據庫中的一個對你來說都很好。另外,我會保留整個數據庫,除非你有特殊的理由需要傳統的數據庫。我曾經在CMS上工作過一次,但從未完成過。基本上,我有結構化的文件(可以填寫各個領域,標題,說明,正文HTML等)。然後爲了顯示這些文件,這些都是用PHP完成的。 PHP會查詢Mongo,渲染文檔,然後就完成了。 – Brad

回答

2

我以前寫過一個自定義CMS。我創建了一個表格結構,它允許我存儲元數據(作者,發佈日期,語言e.t.c)和內容(單獨),因爲我還想實現一個搜索功能,以便我可以分別搜索它們。我在MySql中做了我的工作,但爲了防止SQL中的攻擊,我不得不做很多html編碼,所以出於這個原因,我推薦一個NoSQL數據庫(Mongo/Cassandra應該足夠了)。

我從來沒有真正與Mongo合作過。你也可以使用Cassandra。我更喜歡它,因爲它可以是無模式的(就像許多NoSQL數據存儲一樣)。因此,您可以將數千(如有必要)修訂存儲在一行中,以便您的用戶可以在需要時回滾到以前版本的頁面。一旦他們認爲他們對當前版本感到滿意,您將清除所有備份數據。這只是一個建議。退房http://cassandra.apache.orghttp://www.datastax.com/technologies/cassandra

希望它可以幫助:-)

+0

因此,我有可能將用戶直接存儲在用戶模板中的用戶模板存儲在文檔數據庫中嗎?我的意思是不需要執行任何解析或編碼,而只是獲取整個頁面內容並將其轉儲到數據庫中。當用戶來到返回編輯,顯示存儲的同一頁面,他可以從他離開的地方開始。 – KillABug

+0

是:在服務器端,您可以直接保存文檔。我會推薦使用'html_entities'來保證安全性。另外請注意,任何類型的存儲(包括您當前使用的存儲)不會(根據我的經驗)防止跨站點攻擊,因爲這些存儲在客戶端執行,但我想這個問題只是針對存儲關心。但如果您打算允許用戶將HTML呈現到您的網站中,那麼這也是一個需要密切關注的主題。 – Sthe

相關問題