我是新來的couchDB和仍然閱讀教程。我的問題是,如果是將我的應用程序的每個用戶表示爲新數據庫用戶的正常方式,因爲它似乎在我看起來處處解釋了這種方式?在CouchDB中表示「業務邏輯用戶」的標準方式是什麼?
比方說,我有一個在線遊戲與許多不同的球員 - 我會爲每個註冊的球員創建一個新的「數據庫用戶」嗎?或者我會自己創建數據庫「玩家」並在應用中創建登錄邏輯?不習慣文件驅動的數據庫,我似乎很奇怪不區分我的應用程序的db用戶和用戶...
我是新來的couchDB和仍然閱讀教程。我的問題是,如果是將我的應用程序的每個用戶表示爲新數據庫用戶的正常方式,因爲它似乎在我看起來處處解釋了這種方式?在CouchDB中表示「業務邏輯用戶」的標準方式是什麼?
比方說,我有一個在線遊戲與許多不同的球員 - 我會爲每個註冊的球員創建一個新的「數據庫用戶」嗎?或者我會自己創建數據庫「玩家」並在應用中創建登錄邏輯?不習慣文件驅動的數據庫,我似乎很奇怪不區分我的應用程序的db用戶和用戶...
你可以這樣做。首先是關於用戶的CouchDB CouchDB中
用戶存儲在一個特殊的數據庫_users
數據庫權限是由一種特殊的_security文檔處理。這是針對每個數據庫的。
在安全文檔中,您可以添加之前已存儲在_users
數據庫中的用戶。
所以你當然可以create a database per user。在此之前,問問你自己是否存儲在每個數據庫中的數據是真正獨立的。因爲你不能在數據庫上運行map reduce查詢。因此,如果您計劃針對不同用戶對數據進行彙總,則此方法無效。
Couchdb還可以幫助您進行應用程序級別的身份驗證。由於couchdb使用基於cookie的身份驗證:
_users
數據庫中。所有用於身份驗證的邏輯都是由couchdb爲您執行的。你所要做的就是操縱標題。從您的應用程序發送cookie,並在使用couchdb進行身份驗證時,使用couchdb的頭文件發送它。
如果您更喜歡在您的應用程序中編寫完整的會話管理,那也可以。在這種情況下,只需將用戶存儲在數據庫中,並在驗證它們之前驗證它們是否存在。就像你會用另一個數據庫一樣。
使用couchdb的好處是默認情況下它是安全的 - 使用pbkdf2加密方案來加密密碼。
如果你不是想用一個單一的數據庫,但仍然實現讀/寫訪問控制列表來管理所有的文檔,你可以從Smileupps App Store
檢查Chatty Couchapp Tutorial應用這是一個純couchapp,依靠CouchDB的僅作爲其後端。該教程仍在進行中,但couchapp正在全面運行,您可以下載它的源代碼。
它使用單個CouchDB數據庫實施基於角色/用戶的讀/寫ACL。這樣,您不必設置N個複製,其中N取決於您的用戶數量。您只有一個數據庫包含您的所有數據,易於查詢(有臨時視圖)和維護操作。當然,您可以決定增加數據庫的數量,具體取決於您的數據類型和用例。
單couchapp包含所有必要的代碼前端,管理儀表板和服務器端API實現業務規則
用戶,這取決於他的角色有不同的部分不同的訪問。即他可以訪問前端網站,但不能訪問管理儀表板。
您可以安裝免費試用版,然後使用Smileupps deployment tools下載源代碼,進行更改,上傳並檢查您的更改。