需要MongoDB设计建议

时间:2011-09-09 11:02:55

标签: php mongodb schema

我使用PHP和MySQL获得了API构建。我想将数据库迁移到MongoDB,但需要一些有关设计的建议。

API包含用户和朋友。我为用户提供了一个表,为朋友(连接)提供了一个表。

用户

- id
- firstname
- lastname
- email
- password

- id
- user_id
- friend_id

我正在考虑在MongoDB中使用这个设计,即使用户有1000个朋友,这是一个好方法吗?

用户

- id
- firstname
- lastname
- email
- password
-- Friends
--- ID of friend #1
--- ID of friend #2
--- ID of friend #3

我可以使用朋友ID获取朋友的整个文件吗?这好吗?

1 个答案:

答案 0 :(得分:4)

是;这将是正确的方法。这本书解释了一些确切的方法:

Free Mongo DB Book

作者谈到没有加入和使用经理/员工关系。如果你有。

非常出色的阅读可能会回答您的其他问题。

以下是我所指的具体代码段:

  

阵列和嵌入式文档
  仅仅因为MongoDB没有连接并不意味着它没有一些技巧   袖。请记住,当我们快速看到MongoDB支持数组作为第一类对象时   一份文件?事实证明,当处理多对一或多对一时,这非常方便   多对多的关系。举个简单的例子,如果员工可以有两个经理,   我们可以简单地将它们存储在一个数组中:

db.employees.insert({_id: ObjectId("4d85c7039ab0fd70a117d733"), name: 'Siona',
manager: [ObjectId("4d85c7039ab0fd70a117d730"), ObjectId("4
d85c7039ab0fd70a117d732")] }
  

特别感兴趣的是,对于某些文档,管理者可以是标量值,而对于   其他它可以是一个数组。

祝你好运!