Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: Re: Deleting a branch from a tree structure

by hv (Prior)
on Apr 23, 2003 at 16:58 UTC ( #252628=note: print w/replies, xml ) Need Help??

in reply to Re: Deleting a branch from a tree structure
in thread Deleting a branch from a tree structure

This deletes referenced categories before the category that refers to them, which I think leaves open a window of brokenness, at least of referential integrity.

It might be better to do it the other way round:

sub rec_delete { my $id = shift; my @kids = (... select id where parent = $id ...); delete($id); rec_delete($_) for @kids; }

Update: this is wrong - I was thinking "delete the categories this category refers to" rather than "delete the categories that refer to this category".


Replies are listed 'Best First'.
Re: Re: Re: Deleting a branch from a tree structure
by demerphq (Chancellor) on Apr 23, 2003 at 17:24 UTC

    Hmm. If the child refrences the parent, then we can't delete the parent until we remove the childs reference to it, or remove the child itself of course. So we have to do a postorder traversal of the implicit tree. A preorder traversal as you have here would try to delete the parent while the children point at it.

    Im assuming that the OP was using using the only sane way I know of to represent an nary tree in a single table form, that is using a parent pointer list representation. Now these may have been asumptions too far but... :-)


    <Elian> And I do take a kind of perverse pleasure in having an OO assembly language...

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://252628]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (7)
As of 2023-03-23 14:22 GMT
Find Nodes?
    Voting Booth?
    Which type of climate do you prefer to live in?

    Results (60 votes). Check out past polls.