【发布时间】:2015-06-09 00:01:26
【问题描述】:
我有一张这样的桌子:
Attribute | Type | Modifier
------------+---------+----------
id | integer | not null
title | text | not null
parent | integer |
parent 字段是引用同一个表的外键。
如何确保没有插入任何循环(循环父/子引用)?例如:
id | title | parent
------------+---------+----------
1 | A | 3 or 2
2 | B | 1
3 | C | 2
我正在使用 PHP 和 MySQL。
【问题讨论】:
-
我的英语不太好,假设我想创建一个父/子类别列表,当我试图获取某个类别的父级时,如果发生这种情况,系统会挂起和 php将陷入无限循环
-
好的,那么当有人试图插入一条导致循环的记录时,您希望发生什么?
-
我想防止这种情况发生
-
为了防止循环发生,您只需检查何时移动树中具有子节点的节点。对于要移动的节点,检查新的父节点是否是后代(子节点,或子节点的子节点,或子节点的子节点......)。如果是,则中止。如果不是,则不会发生循环。
标签: php mysql parent-child hierarchical-data circular-reference