RE: trees in MySQL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



http://froogle.google.com/froogle?q=%22SQL+for+Smarties%22&btnG=Froogle+Sear
ch

Chaps 28 & 29. (ok, I had to read both but it sounds like you already
understand the concepts.) The end of chap 29 he gives a simple example for
maintaining what you are talking about.  I used it to write a dynamic menu
system for a web portal for a client. It is possible to do and not terribly
difficult. Given the lack of stored procedures you do end up executing 8-10
sql commands one after the other but if you are using a transaction safe
table type (*COUGH*InnoDB*COUGH*) then it works pretty good.

Unlike one of the suggestions I read here, this system doesn't like holes in
the numbers. But he gives code for adding and subtracting nodes.  By
combining the two, I actually made it so the client could move entire
branches.

HTH,
=C=

*
* Cal Evans
* The Virtual CIO
* http://www.calevans.com
*


-----Original Message-----
From: José Moreira [mailto:jmoreira@e-terno.net]
Sent: Thursday, December 19, 2002 10:45 AM
To: Php-Db (Correio electrónico)
Subject:  trees in MySQL


hello im implementing a portal and im choosing between the 'Nested Set' and
'Adjacency Lists tree' models.
<http://users.starpower.net/rjhalljr/Serve/MySQL/traer.html>


im perfectly aware of the 'Adjacency Lists tree' model how-to and I am
studying the 'Nested Set', example follows :

CREATE TABLE LanguageTree (

  Language VARCHAR(255) PRIMARY KEY
, Parent VARCHAR(255)
, Lft LONG
, Rgt LONG
, INDEX idxLft (Lft)
, INDEX idxRgt (Rgt)
) Comment = "Related languages";


	    A[1 12]
	  /          \
	 /		  \
    B[2 3]       C[4 11]
	   /          \
	  /            \
	  D[5 8]     F[9 10]
	     |
	  E[6 7]


my doubt is that if i want to insert a new node, for example 'G' under 'A'

	    A[1 12]
	  /     |     \
	 /	         \
    B[2 3]    G[]   C[4 11]
	   /             \
	  /               \
	  D[5 8]         F[9 10]
	     |
	  E[6 7]


i have? to update almost every left,righ fields after that node, resulting
in a website performance downgrade ....


help? even if thjats the only way, how can i do it? perhaps im getting it
wrong ...


best regards


José Moreira
TEGOPI S.A.
http://www.tegopi.pt









--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux