我有一个关键字表,其中每个关键字都分配了一个 id 并且是唯一的。我有第二个表,它将父关键字的 ID 链接到子关键字的 ID。一个关键字最多可以有大约 800 个孩子或根本没有。孩子们可以成为更多关键字的父母(等等……)
我遇到的问题是孩子(或孙子或曾孙)可能是导致循环结构的初始关键字的父项。我正在尝试使用递归函数为初始关键字构建树数据结构,但该函数要么永远不会结束,要么超过 Python 中的 1000 级递归限制。
是否有更好的方法来设计我的父/子表以防止这种情况(或在插入期间进行预先检查),或者是否有更好的方法来编写递归函数来防止这种情况发生?我试图限制递归函数的深度,但遇到了单级问题(即子级是父级的父级)。同样,我的目标是为初始关键字创建树结构。
Table Keyword:
id int(11) not null primary key auto_increment (id of keyword)
text varchar(255) unique (keyword text e.g. "computer help desk")
Table Keyword_Relation:
id int(11) not null primary key auto_increment (id for parent/child combo, not keyword id)
parent int(11) (id of parent keyword)
child int(11) (id of child keyword)