Php 为用户使用RDBMS并链接NoSQL项目

Php 为用户使用RDBMS并链接NoSQL项目,php,database,database-design,nosql,rdbms,Php,Database,Database Design,Nosql,Rdbms,我正在规划一个应用程序,希望分别维护一个关系数据库和其他非关系数据库MySQL和MongoDB 一个事实是,在关系数据库中维护用户,而非关系数据库则由此用户生成的内容维护,其中涉及地理查询 现在的问题是如何*使用两个数据库*在用户和项目*之间创建链接并保持性能,还是我采用了错误的方法 我的想法是在mysql中为用户创建一个产品表,并在非关系数据库中创建产品的objectId MySQL表示例: table: products_relationship | account_id | produc

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

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

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

我的想法是在mysql中为用户创建一个产品表,并在非关系数据库中创建产品的objectId

MySQL表示例:

table: products_relationship

| account_id | product_objectid                 |
| ---------- | -------------------------------- |
| 1          | 0b694fc34c9663883a5d4b32371f8333 |
| 1          | 0b694fc34c9663883a5d4b32371f9837 |
| 2          | 0b694fc34c9663883a5d4b32371f9bfc |
| 5          | 0b694fc34c9663883a5d4b32371fcb5f |
| 1          | 0b694fc34c9663883a5d4b32371fd809 |
因此,帐户_id=1的用户有名字、电子邮件和其他数据。拥有3种产品


我应该采用新的方法吗?我会用它来提高性能吗?我是否因此失去了NoSQL的功能?

我使用的系统就是这样做的。我们有关系数据库和NoSQL数据库,我们使用一种叫做Mule的产品(http://www.mulesoft.org/)整合它们

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

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


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

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


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

建立连接。您最好使用关系数据存储和键值缓存来提高性能(通过缓存读取范例)。我感觉到,将一些数据存储在一个平台上,而将其他数据存储在另一个平台上,会使事情变得不必要的复杂。是的,这是我唯一的疑问,如果我在方法上犯了错误,那将需要采取什么样的措施。但在我的业务中,性能应该是最好的,我需要MongoDB提供的地理查询。我仍然错误地使用2个数据库?Mysql确实有。只有InnoDB,没有很好的地理空间支持。我非常喜欢MongoDB geospatial,但现在与关系数据库的关系出现了问题。悲哀。我喜欢Mule,但我不想要通用软件+一个解决方案,但不是我的