我使用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获取朋友的整个文件吗?这好吗?
答案 0 :(得分:4)
是;这将是正确的方法。这本书解释了一些确切的方法:
作者谈到没有加入和使用经理/员工关系。如果你有。
非常出色的阅读可能会回答您的其他问题。
以下是我所指的具体代码段:
阵列和嵌入式文档
仅仅因为MongoDB没有连接并不意味着它没有一些技巧 袖。请记住,当我们快速看到MongoDB支持数组作为第一类对象时 一份文件?事实证明,当处理多对一或多对一时,这非常方便 多对多的关系。举个简单的例子,如果员工可以有两个经理, 我们可以简单地将它们存储在一个数组中:
db.employees.insert({_id: ObjectId("4d85c7039ab0fd70a117d733"), name: 'Siona',
manager: [ObjectId("4d85c7039ab0fd70a117d730"), ObjectId("4
d85c7039ab0fd70a117d732")] }
特别感兴趣的是,对于某些文档,管理者可以是标量值,而对于 其他它可以是一个数组。
祝你好运!