2011-05-06 37 views
1

我不認爲我瞭解CouchDB的工作原理。我的印象是,所有的東西都在客戶端運行,所以這不意味着存儲用戶數據是沒有用的,因爲任何人都可以編寫一個簡單的腳本來訪問這些信息?這對我來說沒有意義,我是否有所有錯?我不認爲我完全理解沙發DB

+0

爲什麼當項目介紹中提到couchdb運行在客戶端時:「CouchDB提供的RESTful JSON API比任何允許HTTP請求的環境都可以訪問。」 – PeterMmm 2011-05-06 09:26:50

+3

Javascript!=客戶端Javascript。從架構的角度來看,CouchDB是一個完美的普通數據庫。 – biziclop 2011-05-06 13:33:02

回答

4

除了地圖,減少和更新操作,一切都在CouchDB中確實在客戶端上運行。在這種情況下,客戶端意味着客戶端連接到數據庫服務器,這通常是運行在您的網絡服務器上的應用程序或腳本。其他數據庫系統也是如此:要從PHP腳本連接到MySQL數據庫,您需要使用MySQL客戶端庫。

關於CouchDB的一件特別的事情是,它不是使用自己的傳輸協議(就像MySQL這樣的其他系統一樣),而是使用HTTP,幾乎所有可用的語言都使用HTTP。這使得CouchDB客戶端的開發變得非常簡單。

關於CouchDB的另一件特別的事情是,它的安全模型允許您讓最終用戶直接連接到數據庫。在這種情況下,您會編寫一個完全在用戶瀏覽器中運行並通過AJAX查詢數據庫的JavaScript應用程序。然後,服務器將對用戶進行身份驗證,並只允許訪問允許用戶訪問的數據庫,無論是隻讀模式還是讀寫模式。雖然這需要服務器端腳手架的出價(註冊新用戶併爲他們創建一個全新的數據庫)。

但是你不必這樣做。我公司使用CouchDB作爲通用永久存儲器,它在互聯網中完全不可見,只有我們的Web服務器才被允許訪問它。

+0

+1。很好的答案。 – JasonSmith 2011-05-06 19:38:35

+0

非常棒的答案,非常感謝。 – 2011-05-06 21:58:21