我正在尝试从mysql转换到nosql。目前,我的数据库中有2个表。文件和目录。
我的文件表中的字段是{FileID,FileName,ParentDirID,FileAttributes}我的目录表中的字段是{DirID,DirName,ParentDirID,FileAttributes}
如果我使用任何NoSQL DB (Mongo/Couch/AmazonSimpleDB),我是否必须维护两个类似的结构文件和目录,否则就会有所不同。
我还读到你可以使用Json在nosql db中进行插入。
下面的插入是否可行,我可以在单个json上添加一个目录和其中的文件
{dirid:"101",
dirName:"C",
ParentID:"100",
Files:{
[FileID:"201",
FileName:"a.txt"],
[FileID:"202",
FileName:"b.txt"]
}
}如果是,那么如何创建用于更新查询,
发布于 2013-04-02 02:09:56
从关系型(MySQL)到NoSQL需要一些快速的背景知识。
在关系世界中,我们想要规范化我们的数据。目标是让数据只存在于一个地方。这迫使我们制作了相当多的表来表示数据。
在NoSQL世界中(或者至少在其中的某些部分),关键词是反规范化。这意味着现在可以在数据库的不同部分拥有相同的数据。例如,我们可以将用户名存储在10个不同的结构中。如果您想要更改用户名,您必须转到10个位置并更改它(可能)。
由于上述原因,相当多的NoSQL解决方案不支持关系意义上的连接。您可以将所有内容存储在一起,而不是单独存储结构,然后连接。
对于您的特定用例,您似乎已经偶然发现了这个想法。您有一个目录文档,然后将所有文件信息嵌入到该文档中。
关于如何使用NoSQL解除数据规范化的一些快速建议……如果你有改变很多的嵌入对象,只存储对它们的引用,并分离这些对象。否则,你最终会将它们全部嵌入其中,实时更新几乎是不可能的。
https://stackoverflow.com/questions/15739850
复制相似问题