Re: Adding history/versioning to a Nested Set model (is it possible?)

From: Ed Lucas <edward.lucas_at_gmail.com>
Date: Fri, 30 Oct 2009 09:37:39 -0700 (PDT)
Message-ID: <ece876f6-2c18-40cf-a4b5-582c45b3c5c1_at_b2g2000yqi.googlegroups.com>


On 30 Oct, 16:04, Tegiri Nenashi <tegirinena..._at_gmail.com> wrote:
> On Oct 28, 9:55 am, Ed Lucas <edward.lu..._at_gmail.com> wrote:
>
>
>
>
>
> > Hi All,
>
> > I'm trying to implement a tree structure, hence I'd like the Nested
> > Set model, but I need to be able to record the history of the tree
> > structure *somehow* so that I can access previous versions.
>
> > I've searched up and down online but all I can find are transactions
> > +rollbacks.
>
> > As far as I can see...
>
> > The simplest option would be to add a version number to the model, but
> > then every member of the set would have to be updated each time a
> > change is made - not feasible because of how fast that would make the
> > table would grow, and how slow that would make it to update?
>
> > I imagine I could log each action and then replay all the log actions
> > in a temporary table when I needed them, but that would get pretty
> > slow after a few updates.
>
> > The previous Nested Set could be serialised to an blob and stored.
> > That's currently looking like the best option, but only by process of
> > elimination...
>
> > I've probably missed something obvious that's staring me in the face
> > here! - any suggestions?
>
> > Thanks for taking the time to read this far, best regards,
> > Ed
>
> When you make even small change to a tree (e.g. insert a node), you
> have to recalculate half of the node encodings on average. This
> feature alone invalidates nested sets approach for temporal
> hierarchies. Google nested intervals.

Aha! Thank you very much to you and Vladimir!

Now I just need to sit in a darkened room with a lot of coffee while I get my head round it all... Received on Fri Oct 30 2009 - 17:37:39 CET

Original text of this message