不久前我对 Amazon Simple DB 进行了深入研究,我怀疑 BerkleyDB 的做法可能有些相似。
Key 和 Value 都是 BLOBS。基本上你可以在那里存储任何东西。让我们根据您列出的一些观点/问题举一个例子。
我将介绍的要点如下:
- 它如何将电子邮件映射到用户?
- 用户如何与其他用户相关联?
与关系数据库一样,键值必须是唯一的,因此假设用户 ID/用户名是唯一的。因此,我们可以将 admin、jdoe、serviceadmin 等键值作为键。由于我们可以在 value 字段中存储任何内容,因此我们可以在 value 字段中存储 XML 文档。
一个示例可能如下所示:
Key:
admin
Value:
<user>
<emaillist>
<email>admin@server.com</email>
</emaillist>
<relatedusers>
<relateduser>
<name>jdoe</name>
<relationship>someidentifier</relationship>
</relateduser>
<relateduser>
<name>serviceadmin</name>
<relationship>someidentifier</relationship>
</relateduser>
</relatedusers>
</user>
由于 XML 可用于以多种方式描述数据,这可能是可以实现的一个非常简单的示例。但是,您可以在其中存储一些与 XML 非常相似的二进制格式的数据,您可以通过某种方式检索和解释这些数据。像位 1 是用户的活动状态等。
NoSQL 的强大之处在于可以存储任何内容,并且行与行的结构也可以不同。这也是不利的一面。由于没有适当的文档就无法解释数据,因此从结构的角度来看,这些类型的数据库很难理解。它们实际上可以包含任何东西。
希望它现在在某种程度上有意义。