couchdb相当于关系数据库模型

时间:2015-04-04 12:53:57

标签: mysql database couchdb

我是使用couchdb的新手,但我有后台编程和关系数据库的背景。

我想从mySQL“迁移我的知识”到CouchDB。虽然我发现了大量有关安装和入门教程的信息,但我很难将关系模型“转换”为CouchDB文档存储。而且我知道,我需要彻底改变我的思维方式......

我想以最好的方式处理这件事,所以我开始了一个基本的练习。我有一个来自实际使用的软件应用程序的简单关系模型。为简单起见,我减少了字段数量。

案例

我们有一堆卡片。每张卡都有自己的属性(id,name,imgpath等)。每个用户都可以在自己的卡片集中随机收集从堆栈中挑选的卡片。

的MySQL

在mySQL中有3个表:

  • 用户[id,名称,密码]
  • 卡片[id,name,value1,value2,imgpath等]
  • UserCards [userid,cardid]

其他相关信息:

  • 我们有超过10万用户并且还在增长。
  • 适用于移动应用,因此速度非常重要。
  • 我们(现在)为每个用户使用不同的db.scheme,每个用户都为每个方案分配了自己的用户权限。 (一旦做出有关安全的决定)。

CouchDB问题

  • 在CouchDB文档模型中存储用户和卡的最有效方法是什么? (那么如何“翻译”表格呢?)

  • 为每个用户创建数据库/方案或者将其全部存储在1个数据库中是否有效/更安全?


显然,现实应用程序本身涉及更多的表和字段,但我只需要一个坚实的起点,我希望可以从那里开始。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  

在CouchDB Document模型中存储用户和卡的最有效方法是什么? (那我该如何"翻译"表格?)

  • 在内置_users db
  • 中存储用户文档
  • 将卡存放在单独的存储桶(db)
  • 实现映射cards2user作为视图
  

为每个用户创建数据库/方案或将其全部存储在1个数据库中是否有效/更安全?

这取决于应用程序的需求:

如果您需要控制对卡的读取访问权限,则需要使用db-per-user方法。

如果您只需要控制写入权限,我建议使用所有卡片的数据库。

用户帐户存储在用户数据库中。