mysql - 对于像 Wufoo 这样的应用程序,使用关系数据库还是基于文档的数据库更好?

标签 mysql mongodb couchdb document-based database

我正在开发一个类似于 Wufoo 的应用程序,它允许我们的用户创建自己的数据库并使用自动生成的表单和 View 收集/呈现记录。

由于每个用户都在创建不同的模式(一个用户可能有他们棒球卡收藏的数据库,另一个可能有他们食谱的数据库)我们目前的方法是使用 MySQL 为每个用户创建单独的数据库,每个用户都有自己的表.所以换句话说,我们的 MySQL 服务器包含的数据库如下所示:

main-web-app-db(我们的网络应用程序包含用户帐户信息、账单等表格)
user_1_db (baseball_cards_table)
user_2_db(食谱表)
....

等等。如果用户想要建立一个新的数据库来跟踪他们的 DVD 收藏,我们会用“create table ...”执行“create database ...”。如果他们输入一些数据,然后决定要更改列,我们会执行“更改表......”。

现在,我越深入地构建它,我就越觉得 MySQL 不太适合处理这个问题。

1) 我首先担心的是,每个请求都切换数据库,首先是我们的主应用程序的数据库进行身份验证等,然后是用户的个人数据库,这将是低效的。

2) 我担心的第二个问题是单个 MySQL 服务器可以托管的数据库数量将受到限制。假装这个应用程序有 500,000 个用户数据库,MySQL 是否设计为以这种方式运行?如果是一百万或更多呢?

3) 最后,这种方法是否会成为支持和扩展的噩梦?我从未听说过以这种方式使用 MySQL,所以我担心这会如何影响复制和其他扩展方法。

对我来说,似乎 MySQL 并不是为以这种方式使用而构建的,但我知道什么。我一直在寻找基于文档的数据库(如 MongoDB、CouchDB 和 Redis)作为替代方案,因为对于这个特定问题来说,无模式方法似乎很有意义。

有人可以就此提供一些建议吗?

最佳答案

由于您将模式留给用户来决定,因此使用强制您定义模式的关系数据库没有意义。

使用 NoSQL数据库。多读一些关于堆栈溢出的文章。

What is NoSQL, how does it work, and what benefits does it provide?

Pros/Cons of document based database vs relational database

What is the best Document-oriented database?

关于mysql - 对于像 Wufoo 这样的应用程序,使用关系数据库还是基于文档的数据库更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2443754/

相关文章:

mysql - 使用 SQLQuery 显示完整查询

javascript - 数据完全渲染时的 React/Meteor 初始化函数

javascript - 将表达式应用于文档中的每个数组元素

ios - 内部查询解析

javascript - 为什么作为函数参数传递的 Javascript 数组在顺序调用函数时可能会丢失其内容?

amazon-web-services - 如何仅使用 AWS 触发 AWS Lambda 以响应 CouchDB 更改事件?

mysql - 在mysql中使用REGEXP进行搜索,不包含重复字符

mysql - 优化复杂的 SQL 查询

macos - 无法访问 CouchDB Web GUI (OSX)

php - MYSQL时间转换为PHP时间