Alexander Bokovoy wrote:

> > I know about the nested sets vs adjecency. All that does is prove your
> > point that SQL databases are not ideal for storing graphs.
>
> We still have problems with current tree routines. Unfortunately, two or
> more times it was rewritten didn't get it better and it sometimes still
> works not as supposed to be. See user reports for past two months related
> to Repligard's fails with some object trees -- this is exactly connected
> with underlying mgd_tree().

Yes, the tree handling code is sub-optimal. There's no relation to
refint checking. If we fix it before the scripting layer comes -- fine.
Refint checking is still a good add-on mechanism. _Especially_ if the
tree handling is not optimal.

> While refints are ghosts for us in dark future of
> MySQL 4.0,

Yes, we've allready established this.

> this problem is what we have for past year or more. Nested sets
> will help to eliminate it.

Uhm, no. It'll re-parent nodes that were erroniously orphaned. Whether
we want these nodes to be there at all is open to debate. And it only
solves the breakage problem going one way. Arcs pointing directly at
the deleted node will still be broken.

There's no relation to refint checking here, other than that nested sets
will make the lack of them in the face of error a little less severe
in very specific circumstances. And if I'm not mistaken, locating and
deleting a node in nested sets is zippy, but adding a node is about as
expensive as it gets, and not reliably implementable without a good
transaction mechanism. Yes, MySQL has decent transaction mechanisms;
none of them will be present in a typical installation yet. Table locks
would work but would be a nasty performance bottleneck.

But if there's a benefit in doing them, hey, we can do nested sets, given
we device a good upgrade procedure. Afaic it's just an implementation
detail; not something anyone using midgard would/should realize, since
it doesn't change the conceptual data model.

Emile



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to