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]
