Mysql 关系数据库模型的couchdb等价物

Mysql 关系数据库模型的couchdb等价物,mysql,database,couchdb,Mysql,Database,Couchdb,我对couchdb的使用是新手,但我有后端编程和关系数据库方面的背景 我想把我的知识从mySQL迁移到CouchDB。虽然我找到了很多关于安装和入门教程的信息,但在将关系模型“转换”到CouchDB文档存储时遇到了困难。我知道,我需要彻底改变我的思维方式 我想以最好的方式处理这件事,所以我开始了一个基本的练习。我有一个来自实际使用的软件应用程序的简单关系模型。为了简单起见,我调低了字段的数量 案例 我们有一堆卡片。每张卡都有自己的属性(id、名称、imgpath等)。每个用户都可以在自己的卡片集

我对couchdb的使用是新手,但我有后端编程和关系数据库方面的背景

我想把我的知识从mySQL迁移到CouchDB。虽然我找到了很多关于安装和入门教程的信息,但在将关系模型“转换”到CouchDB文档存储时遇到了困难。我知道,我需要彻底改变我的思维方式

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

案例

我们有一堆卡片。每张卡都有自己的属性(id、名称、imgpath等)。每个用户都可以在自己的卡片集合中从堆栈中随机选取卡片集合

MySQL

mySQL中有3个表:

  • 用户[id、名称、密码]
  • 卡片[id、姓名、值1、值2、imgpath等]
  • 用户卡[userid,carid]
其他有关资料:

  • 我们拥有超过1万的用户,并在不断增长
  • 这是一个移动应用程序,所以速度是非常相关的
  • 我们(现在)为每个用户使用不同的db.scheme,每个用户为每个scheme分配自己的用户权限。(一旦作出关于安全的决定)
CouchDB问题

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

  • 为每个用户创建一个数据库/方案,还是将其全部存储在一个数据库中,效率高/更安全


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

提前感谢您的帮助

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

  • 将用户文档存储在内置的
    \u users
    db中
  • 将卡存储在单独的存储桶中(db)
  • 实现映射cards2用户作为视图
为每个用户创建一个数据库/方案,还是将其全部存储在一个数据库中,效率高/更安全

这取决于应用程序需要:

如果您需要控制对卡的读访问,则需要db per user方法

如果您只需要控制写访问,我建议使用所有卡的一个db


在这两种情况下,用户帐户都存储在用户数据库中

既然您显然有一个关系模型,为什么要为它们使用非关系存储?不是因为它会更快?是的,我有它会更快的想法?这是一个错误的假设吗?第二,我们希望能够使用云存储,并在需要时轻松扩展服务器……考虑到关系数据库是为处理关系数据而设计的,我想说,试图让文档存储表现得像云存储,并且速度更快是错误的。它可能会造成比解决问题更多的问题。如果MySQL速度太慢,还有更好的替代方案。还有很多在线关系数据库服务提供商,所以你可以“在云中”托管它,而不会有任何问题。我想这是件好事。非常感谢。你知道有什么好的文章来强调你的陈述吗?因为我读了很多书,不知怎的得出了这样的结论。_用户是一个系统表,对吗?专门用于db本身?我们可以使用(滥用)它来存储特定于应用程序的用户?这不是滥用-它是唯一一个拥有特殊读取访问权限的数据库,可以为用户数据保密。啊,好的。谢谢我要试一试。