地方の電気通信研究プロジェクトの一環として、LinuxPCで実行されるマルチユーザーオーディオリポジトリを実装しました。私はRDBMSに精通しているので、MySQLにバックエンドを実装しました。このシステムでは、ほとんどテキストフリーのUIを使用して、登録ユーザーは録音を作成して他の登録ユーザーと共有できます。他の登録ユーザーは、次にシステムにログオンしたときにこれらの録音を聞くことができます。このシステムは成功しており、過去8か月間、ユーザーは多くの録音を作成して聴いています。
私たちの研究プロジェクトの他の部分では、村に10ノードのワイヤレスメッシュネットワークを設置しました。一部のユーザーが現在のオーディオリポジトリまで3km以上歩いているため、現在、選択したメッシュノードサイトで実行される分散オーディオリポジトリを作成する方法を調査しています。ユーザーが分散リポジトリを実行しているメッシュサイトにアクセスして、記録を作成、共有、および聞くことができるようにします。その後、新しい録音がすべてのオーディオリポジトリノード間で同期されます。コンピューターとメッシュノードはソーラーパネルで稼働しているため、電力と接続の両方が断続的になることが多いため、集中型ソリューションの実装には躊躇しています。したがって、couchdbとそのフィルター処理されたレプリケーションは、ユースケースに理想的なソリューションを提供すると考えています。
私はcouchdbを初めて使用し、主にインタラクションデザインのバックグラウンドを持っているので、このようなユースケースにcouchdbバックエンドを実装するのに最適な方法を考えています。ユーザーごとのデータベースは適切ですか、それとも記録はユーザー間で共有されるため、これは機能しませんか?私は簡単な学習者ですが、ユーザーが自分自身を登録し(名前、プロフィール写真)、プライベートレコーディングを作成して、公開または選択したユーザーと共有できるデータベースを設計する方法についてアドバイスをいただければ幸いです。また、特定のユーザーが作成したすべての記録を集約するビュー、および他のユーザーが特定のユーザーと共有したすべての記録を集約するビューを作成する方法についての助けをいただければ幸いです。どうもありがとうございます!