4

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

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

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

4

1 回答 1

2

我会将所有内容都放在一个数据库(用户记录和用户配置文件)上,而不是为每个用户创建单独的数据库。有了它,您可以使用视图整理,例如发出用户配置文件和所有拥有的记录或所有共享记录与单个视图。

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

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

于 2012-12-05T22:54:39.700 回答