所以我正在编写一个允许用户创建一种测验的应用程序。每个测验都可以不同,IE会有独特的问题和答案。我从来没有玩任何nosql数据库,我试图围绕如何nosql数据库(沙发,mongo等...)实际组织数据。看起来这种类型的数据存储可能很适合这种类型的应用程序(IE没有表定义可以提出多少问题的表)但我仍然不确定nosql数据库是如何实际工作的。
我倾向于更像是一个视觉学习者,有人能指出一些好的视觉效果或描述nosql数据库如何实际组织他们持有的数据吗?
答案 0 :(得分:3)
我将谈论monogdb。 Mongodb以bson格式(二进制json)存储她的数据。您可以继续认为它以json格式存储数据。
Mongodb包含一个可以使用的大好处 - 能够使用embedd文档。您可以在应用程序中使用此功能:
所以你可以在你的问题集中嵌入答案:
questions {
_id: 1,
text: "What is your name",
answers: [
{
order: 1,
text: "Andrew"
},
{
order: 1,
text: "Greg"
}
]
}
嵌入通常可以使您的数据库模式更简单,并且允许避免连接和数据通常看起来更自然。例如,在sql世界中,您没有任何其他解决方案,因为创建问题和答案的单独表格。
您可以使用的另一个好处是 - 可扩展性。 Mongodb旨在完全可扩展,它支持分片和副本集。
您可以开始阅读更多here架构设计。你也可以查看little monogdb book,只有30页,但它应该有助于更深入地了解mongodb的工作原理。
只需选择一些nosql数据库并尝试使用,你就可以开始使用相当简单的项目了。我相信你一旦尝试就会喜欢它。