Database-entiteit omzetten naar Tree

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maurits de Jong

Maurits de Jong

29/09/2010 19:31:11
Quote Anchor link
Hi allen,

Ik heb een database met een soort van boomstructuur:

id (INT)
boundTo (INT)
title (VARCHAR)

Het idee is dat de kolom 'id' uniek is (gewoon de primaire sleutel) en dat 'boundTo' verwijst naar 'id' (zo kun je dus vertakkingen krijgen).

id, boundTo, title
1, 0, hoofd
2, 1, oog
3, 1, neus
4, 2, iris
5, 2, pupil

Zo heb je het effect dat aan het hoofd de oog en de neus zitten, en aan het oog de iris en de pupil.

Nu wil ik dit model omzetten naar een soort Tree:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

class TreeElement {

  private $elements = array();

  public function add(TreeElement $element) {
    $this->elements[] = $element;
  }

}


?>


Hoe kan ik het model die de database gebruikt, het beste omzetten naar een tree-model als hierboven?
Neem aan dat de data uit de database al in dit format staat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

$dataUitDatabase
= array(
  array(
    "id"      => 1,
    "boundTo" => 0,
    "title",  => "hoofd",
  ),

  array(
    "id"      => 2,
    "boundTo" => 1,
    "title"   => "oog",
  ),
);


?>

enz.

Ik ben ervan overtuigd dat er meerdere wegen naar Rome zijn, maar welke is de beste? Moet ik in PHP een entity-object maken die de databasetabel representeert? En wat is het voordeel van die methode?

Greetz,
Maurits
Gewijzigd op 29/09/2010 19:32:51 door Maurits de Jong
 
PHP hulp

PHP hulp

26/11/2024 15:53:49
 
Martijn B

Martijn B

29/09/2010 19:38:06
Quote Anchor link
Heb je dit zelf bedacht?
Want dit is een parent child relatie.

Meestal heeft jou kolom bountTo de naam parentid.

Ik denk dat je hier wel wat aan hebt:

http://crisp.tweakblogs.net/blog/317/formatting-a-multi-level-menu-using-only-one-query.html
Gewijzigd op 29/09/2010 19:39:14 door Martijn B
 
Maurits de Jong

Maurits de Jong

29/09/2010 19:45:39
Quote Anchor link
Martijn B op 29/09/2010 19:38:06:
Heb je dit zelf bedacht?

Want dit is een parent child relatie.

Meestal heeft jou kolom bountTo de naam parentid.

Ja, zelf bedacht! Maar het lijkt erop dat precies dit principe al bestaat, als ik op jouw link klik! ;-)


Dit lijkt verdacht veel op wat ik zoek! Bedankt! Ik ga het maar ff toepassen en testen in m'n eigen scripts!

Bedankt voor je snelle reactie!
 
Martijn B

Martijn B

29/09/2010 19:48:18
Quote Anchor link
Best knap dat je hier zelf opgekomen bent ;D
 
Maurits de Jong

Maurits de Jong

29/09/2010 19:51:37
Quote Anchor link
Dank je wel! Ik heb zogezegd zelf het wiel opnieuw uitgevonden. :-P
 

29/09/2010 20:12:35
Quote Anchor link
Maurits de Jong op 29/09/2010 19:51:37:
Dank je wel! Ik heb zogezegd zelf het wiel opnieuw uitgevonden. :-P


Dat geeft mooi aan dat het een goed idee is ;-).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.