← Back to team overview

sslug-teknik team mailing list archive

Re: Træ-struktur i SQL?

 

"Preben Mikael Bohn" <preben@xxxxxxx> writes:

> Hej alle, jeg sidder og skal lave nogle tabeller i SQL (helst generelt, ellers
> i mysql). Hver enkelt række i en af tabellerne skal have associeret en
> træ-struktur af ukendt, men relativ lille, størrelse (<~20 knuder).

Jeg tror jeg ville lave to tabeller, en indenholdende data og en
indenholdende relationen mellem data:

CREATE TABLE data (
    id int(8) unsigned NOT NULL auto_increment,
    data char(256),
    PRIMARY KEY(id)
)

CREATE TABLE relations
    child int(8) unsigned NOT NULL,
    parent int(8) unsigned NOT NULL,
    PRIMARY KEY(child)
)

Så kan du let finde alle børnene til en knude med 'SELECT child FROM
relations WHERE parent=$id' og finde forælderknuden med 'SELECT parent
FROM relations WHERE child=$id'.

Måske er det lidt et hack at gøre child til primærnøgle i
relationstabellen, men det sikre at hver knude kun har en
forælderknude.


-- 
 Peter Makholm     |         Perhaps that late-night surfing is not such a
 peter@xxxxxxxxxxx |           waste of time after all: it is just the web
 http://hacking.dk |                                              dreaming
                   |                                    -- Tim Berners-Lee


References