所以我有下面的SQL表:
CREATE TABLE LINKTABLE ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, parent_id INT, quote_id INT, article_id INT, asset_id INT, blog_id INT ); 此处的ID是对其他表(blog,article等)的引用,但其中的其他ID也引用parent_idBlog表。这里的想法是a quote可以将an链接article到blog或blog将a 链接到父博客parent。
这形成一棵树,其中articles有叶子,blogs是节点,并且quotes是节点和叶子之间的分支。
鉴于我有这张桌子,我试图找出遍历它的最有效方法。贪婪的是,我认为我可以遍历所有quotes节点,然后将节点链接在一起,但这意味着我的运行时间将取决于我拥有的分支数量,我认为这是阶乘时间(?)。
有谁有更好的解决方案?
编辑:忘记添加这是在mysql中。
编辑编辑:一个死胡同似乎是要包括任何两个博客A和C之间的所有引号,而不管是否存在博客B,以使A是B的父级是C的父级且引用相同,然后删除A到C连接是一条较短的路径。在这里(如何删除未加权有向图中的循环,从而使边的数量最大化?)似乎意味着该方法是NP-hard的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。