我有一个:
现在我想创建Database schma。它将是:
故事 - 用户插入包含说明的故事。
问题 - 与故事的关系。一个故事可以有100多个问题。
答案 - 与问题的关系。一个问题只能有一个答案。
我应该在MongoDb中选择什么类型的关系?我需要更快的灵魂。 例如:
{
title: "Story title",
descr: "Story descr",
questions: [
{body: "Question body", user: "User}
]
}
答案 0 :(得分:2)
由于每个故事的问题数量可能很大,并且假设在显示故事时不需要显示所有问题(特别是在显示故事列表时),并且因为在一个文档中有很多作者带有复杂性的数量,我建议以下简单的架构:
stories {
_id
title
description
}
questions {
_id
storyId
user
body
answer { ... }
}
查找故事的所有问题很简单(storyId
应该有索引),找到给定问题的故事是微不足道的。我认为可以嵌入answer
。不过,请注意并发写入,即当有人编写问题时,有人写了答案。使用单个嵌入式文档比使用单个嵌入式文档要容易得多,并发写入者的数量最多可能是两个,而不是数百个。
唯一稍微棘手的操作是删除一个故事,要求你手动删除问题,但这只是一个电话。