4

地方の電気通信研究プロジェクトの一環として、LinuxPCで実行されるマルチユーザーオーディオリポジトリを実装しました。私はRDBMSに精通しているので、MySQLにバックエンドを実装しました。このシステムでは、ほとんどテキストフリーのUIを使用して、登録ユーザーは録音を作成して他の登録ユーザーと共有できます。他の登録ユーザーは、次にシステムにログオンしたときにこれらの録音を聞くことができます。このシステムは成功しており、過去8か月間、ユーザーは多くの録音を作成して聴いています。

私たちの研究プロジェクトの他の部分では、村に10ノードのワイヤレスメッシュネットワークを設置しました。一部のユーザーが現在のオーディオリポジトリまで3km以上歩いているため、現在、選択したメッシュノードサイトで実行される分散オーディオリポジトリを作成する方法を調査しています。ユーザーが分散リポジトリを実行しているメッシュサイトにアクセスして、記録を作成、共有、および聞くことができるようにします。その後、新しい録音がすべてのオーディオリポジトリノード間で同期されます。コンピューターとメッシュノードはソーラーパネルで稼働しているため、電力と接続の両方が断続的になることが多いため、集中型ソリューションの実装には躊躇しています。したがって、couchdbとそのフィルター処理されたレプリケーションは、ユースケースに理想的なソリューションを提供すると考えています。

私はcouchdbを初めて使用し、主にインタラクションデザインのバックグラウンドを持っているので、このようなユースケースにcouchdbバックエンドを実装するのに最適な方法を考えています。ユーザーごとのデータベースは適切ですか、それとも記録はユーザー間で共有されるため、これは機能しませんか?私は簡単な学習者ですが、ユーザーが自分自身を登録し(名前、プロフィール写真)、プライベートレコーディングを作成して、公開または選択したユーザーと共有できるデータベースを設計する方法についてアドバイスをいただければ幸いです。また、特定のユーザーが作成したすべての記録を集約するビュー、および他のユーザーが特定のユーザーと共有したすべての記録を集約するビューを作成する方法についての助けをいただければ幸いです。どうもありがとうございます!

4

1 に答える 1

2

ユーザーごとに個別の DB を作成するのではなく、単一の DB (ユーザーの記録とユーザー プロファイル) にすべてを配置します。これにより、ビューの照合を使用して、たとえば、ユーザー プロファイルとすべての所有記録またはすべての共有記録を 1 つのビューで出力できます。

レコーディングを作成するには、所有者を示すキー ペアを含むレコーディング ドキュメントを追加します。別のキー ペアは、レコーディングが共有されているすべてのプロファイルの ID を含む配列である可能性があります。

ユーザー インターフェイスの場合、非常にシンプルに保つために Couchapp (http://couchapp.org/page/index) を使用できますが、ユーザー インターフェイスを作成するための他の多くのオプションがあることは明らかです。

于 2012-12-05T22:54:39.700 に答える