我正在用MongoDB构建一个简单的数据库,我对于高效的文档结构有一些疑问。我基本上有三个不同的部分:用户,事件和成本。见下面我目前的做法。高效的MongoDB数据库结构
{
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"phone": "123456",
"events": [
{
"_id": "*MongoId reference to event*",
"status": 0,
"owner": 1,
"costs": [
{
"id": 1,
"name": "Test",
"amount": 59.99,
"created": "27/12/16 16:47:34 UTC",
"updated:": "27/12/16 16:47:34 UTC"
}
],
"created": "27/12/16 16:47:34 UTC",
"updated": "27/12/16 16:47:34 UTC"
}
],
"created": "27/12/16 16:47:34 UTC",
"updated": "27/12/16 16:47:34 UTC"
}
多个用户将连接到相同的事件,因此是MongoID引用,但显然成本只属于一个用户事件组合。我有一些示例使用案例:
- 列表中的用户的事件通过USER_ID(快)
- 列表的事件的用户可以通过事项标识(速度?)
- 名单通过事项标识事件的成本(速度?)
- 查找USER_ID,event_id的和cost_id(快)一成本
会用例2和3处于可接受的限度,这是一种有效的结构,用于我的需要?