Hallo,
normalerweise habe zumindest ich bisher nur mit Bäumen gearbeitet, zu der es in der Verästelung immer eindeutige Beziehungen gab, heisst: jeder Eintrag hat einen und nur einen Parent-Eintrag.
Nun habe ich aber hier den Fall, dass ein Eintrag zu mehreren Parent-Einträgen (im Beispiel: kat #5) verbunden ist und das auch noch in auf verschiedenen Ebenen der Baum-Hierachie. Hinweis: ich lege die daten nicht selber so an, sondern versuche Vorgaben zu analysieren.
Für den ersten Fall habe ich feine und performante Statements bauen können, doch zum unten beschriebenen Fall fällt mir nix mehr ein. Lässt sich dies überhaupt in einer stored procedure umsetzen?
Die Stuktur
die Daten
Ziel ist es all Möglichen Kombinationen aus dem Root heraus aufzulisten.
Vielleicht hat ja jemand den richtigen Anstoss ...
normalerweise habe zumindest ich bisher nur mit Bäumen gearbeitet, zu der es in der Verästelung immer eindeutige Beziehungen gab, heisst: jeder Eintrag hat einen und nur einen Parent-Eintrag.
Nun habe ich aber hier den Fall, dass ein Eintrag zu mehreren Parent-Einträgen (im Beispiel: kat #5) verbunden ist und das auch noch in auf verschiedenen Ebenen der Baum-Hierachie. Hinweis: ich lege die daten nicht selber so an, sondern versuche Vorgaben zu analysieren.
Für den ersten Fall habe ich feine und performante Statements bauen können, doch zum unten beschriebenen Fall fällt mir nix mehr ein. Lässt sich dies überhaupt in einer stored procedure umsetzen?
Die Stuktur
Code:
CREATE TABLE `baum` (
`id_eintrag` INT(3) NOT NULL DEFAULT '0',
`parentId` TINYINT(3) NULL DEFAULT NULL,
`name` VARCHAR(2) NULL DEFAULT NULL
);
die Daten
Code:
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (1, NULL, 'kat #1');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (2, 1, 'kat #2');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (3, 2, 'kat #3');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (4, 1, 'kat #4');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (5, 4, 'kat #5');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (6, 5, 'kat #6');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (7, 11, 'kat #5');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (8, 2, 'kat #8');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (9, 10, 'kat #9');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (10, 8, 'kat #10');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (11, NULL, 'kat #11');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (12, 11, 'kat #12');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (13, 11, 'kat #13');
INSERT INTO `baum` (`id_eintrag`, `parentId`, `name`) VALUES (14, 2, 'kat #5');
Ziel ist es all Möglichen Kombinationen aus dem Root heraus aufzulisten.
Vielleicht hat ja jemand den richtigen Anstoss ...
Zuletzt bearbeitet: