具有多对多关系的递归关系MySQL表

具有多对多关系的递归关系MySQL表,mysql,recursion,relational-database,Mysql,Recursion,Relational Database,我正在创建一个包含属性列表的数据库结构。每个列表都包含我需要存储的各种便利设施,存储在列表\u便利设施表中 此列表将包含递归记录。例如,一个上市的便利设施可能是“互联网”。在该记录下,我们需要存储儿童记录,例如它是什么类型的互联网(ADSL、光纤等)、速度(20mbs、50mbs等)以及ISP 我的问题是递归模型是否是正确的解决方案,我将如何为此构建数据库结构,或者是否有更好的解决方案。换句话说,将所有便利设施及其sub_属性简单地存储在listings表上的一个大JSON blob列中会更好吗

我正在创建一个包含属性列表的数据库结构。每个列表都包含我需要存储的各种便利设施,存储在列表\u便利设施表中

列表将包含递归记录。例如,一个上市的便利设施可能是“互联网”。在该记录下,我们需要存储儿童记录,例如它是什么类型的互联网(ADSL、光纤等)、速度(20mbs、50mbs等)以及ISP

我的问题是递归模型是否是正确的解决方案,我将如何为此构建数据库结构,或者是否有更好的解决方案。换句话说,将所有便利设施及其sub_属性简单地存储在listings表上的一个大JSON blob列中会更好吗


创建递归表的原因是为了更好地进行查询,以便最终我们可以轻松地查询具有ADSL internet的房地产清单,并按位置对其进行排序,以便我们可以针对特定区域进行营销,以升级到光纤

首先,我建议不要使用JSON BLOB,因为这样查询起来不容易,也不可靠

如果你确定了一个有限的等级,你将你的sub_属性分解为两个,比如舒适性和sub_属性,这将使它更容易处理


使用一个表,对子属性或超级属性进行自引用的原因是为了支持无限数量的级别,您可以按这些级别进行分解。然而,这可能很麻烦,因为您永远不知道有多少个级别,所以您不知道在一个连接中要使用多少个级别。如果可以避免这种情况,可能会更好。

是的,问题在于嵌套的级别以及每个家长将有多少个孩子取决于舒适度。SQL是正确的解决方案还是应该存储在NoSQL数据库中?NoSQL数据库在工作方式和擅长方面各不相同。我使用了一个针对时间序列进行优化的方法,基本上是考虑表的列而不是行。其他的是快速键值存储。因此,您必须搜索适合您需要的NoSQL。可能存在一些优化树和搜索树的方法。我不太希望有一个有效的数据库来解决这个问题,“多对多”关系在哪里?它不只是一棵树吗?它将位于数据透视表中嵌套最多的子项和列表之间。对不起,我不明白您试图比较哪些模式。也许你应该给出清晰的例子。