我正在开发一个项目,其中PHP中的程序接收已发布的项目,例如图像,文本等,然后将这些项目存储在SQL数据库中。然后,用户选择相关项目,其关系将发布到第二个表格中。然后我需要计算任意两个项目之间的最短距离(如果它们完全相连)。
我的桌子:
Table `items`
'id' int(15); auto_increment; primary index.
'content' longtext; not null
Table `relationships`
'id' int(15); auto_increment; primary index
'item1' int(15) not null
'item2' int(15) not null
表relationships
中的两列将包含表items
中两个项的ID。这些不是唯一的,因此每个项目可能与十个,一百个或一万个其他项目相关。我可以使用什么样的查询来尝试找到两个项目之间关系度数的最短距离,而不会耗尽所有内存并花费很长时间来计算?
编辑:为了澄清,我想使用关系表找到项目X和项目Y之间的“分离程度”。我只能为即时(一级)关系或二级关系提出一个公平的解决方案,但在此之后,记忆和时间要求会变得陡峭。