我有一个:
- MongoDB 数据库
- NodeJS 上的 REST API
- Angular JS 前端
现在我想创建数据库架构。它将是:
故事 - 用户插入带有描述的故事。
问题 - 与故事相关。一个故事可以有 100 多个问题。
答案 - 与问题相关。一个问题只能有一个答案。
我应该在 MongoDb 中选择什么类型的关系?我需要更快的灵魂。 例如:
{
title: "Story title",
descr: "Story descr",
questions: [
{body: "Question body", user: "User}
]
}
最佳答案
由于每个故事的问题数量可能很大,并且假设在显示故事时(特别是在显示故事列表时)不需要显示所有问题,并且因为一个文档有很多作者,因此由于复杂程度较高,我建议采用以下简单模式:
stories {
_id
title
description
}
questions {
_id
storyId
user
body
answer { ... }
}
查找一个故事的所有问题很简单(storyId
应该有一个索引),查找给定问题的故事也很简单。我认为可以嵌入答案
。不过,请注意并发写入,即当有人编辑问题而其他人编写答案时。当使用单个嵌入文档时,这比使用数组要容易得多,并且并发写入者的数量最多可能是两个,而不是数百个。
唯一稍微棘手的操作是删除故事,这需要您手动删除问题,但这实际上只是一个调用。
关于node.js - MongoDb 数据关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19605614/