MongoDB树状结构DB设计

时间:2016-08-07 13:59:48

标签: php mysql mongodb database nosql

我正在尝试将我的数据库从mysql迁移到mongoDB,需要一些澄清。 首先,从mysql迁移到mongodb的原因是因为我的数据结构。在我的应用程序中,我有用户使用文件夹,每个用户都有一个根文件夹,根文件夹可以包含其他文件夹和文件。在我的关系数据库设计中,我一直在使用parent_id作为同一个表的id的外键的文件夹,因此它就像树一样,因此文件夹中有子项和根。

到目前为止,这是使用嵌入的完美示例,因此用户文档嵌入了文件夹文档(“根文件夹”),并且从那里其他文件夹可以包含任意深度的文件夹和文件。请参阅下图以了解结构。

enter image description here

但是,在应用程序中有一项要求,即要求许多用户之间可以“共享”文件夹。现在事情变得复杂了,因为“共享”是一种多对多关系,这基本上与嵌入的使用相矛盾。最后一个选项是使用mongodb的引用,这导致一个类似于我在mysql中做的设计(父和子......)

首先,有没有办法利用基于文档的mongodb结构,因为我的设计类似于基于树的文档?打破这种设计的唯一因素是“共享”功能(多对多)和最后,如果我使用引用这是最终选项而不是mysql,我会得到什么,因为在一天结束时我将需要相同的检索数据的查询量?

赞赏。

0 个答案:

没有答案