棘手的MySQL查询

时间:2013-01-11 08:21:38

标签: php mysql

我有一个包含三列(KEY,personID,personID)的兄弟姐妹表

以下为例:

0|1|2
1|2|3
2|1|4
3|4|5
4|1|6
5|5|7

请注意ID为1到5的所有人都是兄弟姐妹。

现在,在确保(在所有情况下)所有其他兄弟姐妹保持兄弟姐妹的同时,删除一个兄弟姐妹的最佳方法是什么。

一个棘手的案例是使用ID=4删除兄弟姐妹。如果单独使用SQL是不可能的,那么用PHP + MySQL做到最好的方法是什么呢。

我提出的代码很长,效率似乎很低。如果有人有任何其他想法,我很乐意听到。

1 个答案:

答案 0 :(得分:1)

您当前布局的问题在于您基本上有几个节点(人)和它们之间的一些连接。这些债券带有隐式推论“如果A带有B和B带有C,那么带有C的A”,这对于关系数据库不起作用。

理想情况下,您需要双向的所有债券。然后,您可以根据需要安全地删除人员。