0

我正在计划一个应用程序,并希望分别维护一个关系数据库和其他非关系数据库,MySQL 和 MongoDB。

一个事实是,在关系数据库中维护的是用户,而非关系数据库是由该用户生成的内容维护的,其中涉及地理查询

现在的问题是如何使用两个数据库在用户和您的项目之间*创建链接并保持性能或采用错误的方法?

我的想法是创建一个产品表,其中mysql 中的用户的外键和数据库中产品的objectId非关系。

示例 MySQL 表:

table: products_relationship

| account_id | product_objectid                 |
| ---------- | -------------------------------- |
| 1          | 0b694fc34c9663883a5d4b32371f8333 |
| 1          | 0b694fc34c9663883a5d4b32371f9837 |
| 2          | 0b694fc34c9663883a5d4b32371f9bfc |
| 5          | 0b694fc34c9663883a5d4b32371fcb5f |
| 1          | 0b694fc34c9663883a5d4b32371fd809 |

因此,account_id = 1 的用户有名字、电子邮件和其他数据。并拥有3个产品。

我应该采用新的方法吗?我会因此获得性能吗?我会因此失去 NoSQL 的功能吗?

4

2 回答 2

1

我在工作中的系统上工作就是这样做的。我们有关系数据库和 NoSQL 数据库,我们使用名为 Mule (http://www.mulesoft.org/) 的产品来集成它们。

我强烈建议选择 MySQL 或 Mongo 并针对其中一个数据库执行所有 PHP 工作。您可以从 MySQL->Mongo 或从 Mongo->MySQL 近乎实时地移动数据。骡子擅长这一点。

您将无法有效地跨系统进行“连接”。

Mule 还将帮助您在移动数据时对数据进行转换。例如,您可以在 MySQL 中获取规范化数据并将其非规范化以存储在 Mongo 中。

于 2013-01-20T22:12:43.110 回答
0

我意识到我采用了一个复杂的架构,而我并不需要太多的复杂性。我没有理由希望我的用户在关系数据库中。是的,他们可以毫无问题地留在 MongoDB 中,以及每个用户中的产品。这是我创造的一种关系。

如果我愿意,我可以使用 _objectId 建立连接

于 2013-01-21T14:46:11.930 回答