为用户使用RDBMS并与NoSQL项链接

时间:2013-01-20 04:08:05

标签: php database database-design nosql rdbms

我正在计划一个应用程序,并希望分别维护关系数据库和其他非关系,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的功能?

2 个答案:

答案 0 :(得分:1)

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

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

您无法跨系统有效地“加入”。

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

答案 1 :(得分:0)

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

如果需要,我可以使用_objectId

建立连接