Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分布式多用户音频库的CouchDB数据库设计_Couchdb - Fatal编程技术网

分布式多用户音频库的CouchDB数据库设计

分布式多用户音频库的CouchDB数据库设计,couchdb,Couchdb,作为农村电信研究项目的一部分,我实现了一个运行在linux PC上的多用户音频存储库。由于我熟悉RDBMS,我已经在MySQL中实现了后端。在该系统上,注册用户可以使用基本上无文本的UI创建录音,并与其他注册用户共享录音,这些用户可以在下次登录系统时收听这些录音。这个系统已经成功了,在过去的8个月里,用户一直在制作和收听许多录音 我们研究项目的另一部分在该村安装了一个10节点的无线网状网络。当一些用户向上走3公里到达当前的音频存储库时,我们现在正在研究如何创建在选定的mesh节点站点上运行的分布

作为农村电信研究项目的一部分,我实现了一个运行在linux PC上的多用户音频存储库。由于我熟悉RDBMS,我已经在MySQL中实现了后端。在该系统上,注册用户可以使用基本上无文本的UI创建录音,并与其他注册用户共享录音,这些用户可以在下次登录系统时收听这些录音。这个系统已经成功了,在过去的8个月里,用户一直在制作和收听许多录音

我们研究项目的另一部分在该村安装了一个10节点的无线网状网络。当一些用户向上走3公里到达当前的音频存储库时,我们现在正在研究如何创建在选定的mesh节点站点上运行的分布式音频存储库。这样用户就可以访问运行分布式存储库的mesh站点,创建、共享和收听录音。然后跨所有音频存储库节点同步新录制。由于计算机和网格节点使用的是太阳能电池板,因此电源和连接往往是断断续续的,因此我们对实施集中式解决方案犹豫不决。因此,我们认为couchdb及其过滤复制将为我们的用例提供理想的解决方案


由于我是couchdb的新手,并且主要来自交互设计背景,我想知道如何最好地为这种用例实现couchdb后端。每个用户的数据库是否合适,或者由于录制是在用户之间共享的,所以这不起作用?我学得很快,但如果能提供一些关于如何设计一个数据库的建议,用户可以在该数据库中注册自己(姓名、个人资料图片),然后创建私人录音,然后将其公开或与特定用户共享,我将不胜感激?对于如何创建视图以聚合特定用户创建的所有录制,以及如何创建视图以聚合其他用户与特定用户共享的所有录制,我也将不胜感激。多谢各位

我会将所有内容放在一个DB(用户记录和用户配置文件)上,而不是为每个用户创建单独的DB。有了它,您可以使用视图排序规则,例如,通过单个视图发出用户配置文件和所有拥有的录制或所有共享录制

要创建录制,我只需添加带有指示所有者的密钥对的录制文档。另一个密钥对可以是一个数组,其中包含与之共享录制的所有配置文件的ID


对于用户界面,为了保持非常简单,可以使用Couchapp(http://couchapp.org/page/index)但显然,创建用户界面还有许多其他选项。

我对couchdb和audio做了一些工作。作为一个开始。如果有任何问题,请告诉我。谢谢Ryan。我会看看你的项目。我想我可以从中学到很多,特别是关于如何使用附件。谢谢你的帮助。我仔细阅读了视图排序规则,它似乎是实现这一点的最佳(或唯一?)方法。