使用RDBMS为用户和链接与NoSQL项目


Using RDBMS for Users and Link with NoSQL Items

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

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

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

我的想法是创建一个产品表,在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的功能?

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

我强烈建议选择MySQL或Mongo,并在其中一个数据库上完成所有PHP工作。你可以几乎实时地从MySQL->Mongo或从Mongo->MySQL移动数据。Mule很擅长这个。

你将无法有效地跨系统进行"连接"。

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

我意识到我采用了一个复杂的体系结构,而我并不需要太多的复杂性。我没有理由希望我的用户在关系数据库中。是的,它们可以留在MongoDB中,没有任何问题,每个用户的产品。这是我创建的关系。

如果我愿意,我可以使用_objectId

建立连接