2012-12-04 64 views
4

作爲農村通信研究項目的一部分,我已經實現了在Linux PC上運行的多用戶音庫。由於我熟悉RDBMS,我已經在MySQL中實現了後端。在這個系統上,使用大多數沒有文本的用戶界面,註冊用戶可以創建和與其他註冊用戶共享錄製內容,他們可以在下次登錄系統時收聽這些錄製內容。這個系統已經取得了成功,在過去的8個月裏,用戶一直在創作和收聽很多錄音。CouchDB的數據庫設計用於分佈式的多用戶音庫

我們的研究項目的其他部分已經安裝在村裏一個10節點的無線網狀網絡。隨着一些用戶向前走3公里到達當前音頻存儲庫,我們現在正在研究如何創建在選定網格節點站點上運行的分佈式音頻存儲庫。這樣用戶就可以走到運行分佈式存儲庫的網格站點並創建,共享和收聽錄音。然後新的錄音在所有音頻儲存庫節點上同步。由於計算機和網狀節點都是由太陽能電池板運行的,因此電源和連接通常都是間歇性的,所以我們對實施集中式解決方案猶豫不決。因此,我們認爲couchdb和它的過濾複製將爲我們的用例提供理想的解決方案。

由於我是新來的CouchDB和交互設計的背景來居多,我想知道如何最好地實現CouchDB的後端這樣的使用情況。每個用戶數據庫是否合適,或者由於錄製是在用戶之間共享的,所以這不起作用?我學得很快,但希望就如何設計一個數據庫,用戶可以自己註冊(姓名,資料圖片)一些建議,然後創建私人錄音,其然後可以被公開或選擇用戶共享?對於如何創建聚合特定用戶創建的所有記錄的視圖以及聚合其他用戶與特定用戶共享的所有記錄的視圖,我也非常感謝。非常感謝你!

+1

我做了使用CouchDB和音頻的一些工作。作爲開始,請參閱https://github.com/ryanramage/couch-audio-recorder。請給我任何問題。 –

+0

謝謝瑞恩。我會看看你的項目。我想我可以從中學到很多東西,尤其是關於如何使用附件。 – Thomas

回答

2

我會戴上一個DB的一切(用戶記錄和用戶配置文件),而不是爲每個用戶創建單獨的數據塊。通過該功能,您可以使用視圖歸類功能,例如使用單個視圖發送用戶配置文件和所有的錄製文件或所有共享錄製文件。

要創建錄製文件,我只需使用密鑰對添加錄製文件以指示誰是所有者。另一個密鑰對可以是一個數組,其中包含已與其共享記錄的所有配置文件的ID。

對於用戶界面,爲了保持它非常簡單,您可以使用Couchapp(http://couchapp.org/page/index),但顯然還有許多其他選項可用於創建用戶界面。

+1

感謝您的幫助joscas。我閱讀了視圖整理,似乎是實現這一點的最佳(或唯一)方式。 – Thomas