Subcategorieën
Hallo,
Ik wil in mijn lijsten subcategorieën maken, alles komt uit de database dus mijn vraag is hoe zou ik dit het beste kunnen doen, ieder item staat apart in de database en een lijst telt al snel 100 items.
Ik dacht aan een soort path opslaan bij ieder item en deze dan uitlezen in een array.
Een subcategorie kan er zo uit zien.
Hoe doen jullie dit?
Mvg. Knipper
Ik wil in mijn lijsten subcategorieën maken, alles komt uit de database dus mijn vraag is hoe zou ik dit het beste kunnen doen, ieder item staat apart in de database en een lijst telt al snel 100 items.
Ik dacht aan een soort path opslaan bij ieder item en deze dan uitlezen in een array.
Een subcategorie kan er zo uit zien.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
>kast3
>boren
-15
-20
-25
-30
-32
>tangen
-knip
-bek
-multy
-grip
>kast4
>boren
-2
-5.5
-7
-10
>zekeringkast
>contactor
-3p
-6p
-2p
>DOMO
-TL55
-TL25
>kast1
>oefeingen
-foutzoek1
-foutzoek2
-foutzoek3
-foutzoek4
>lampen
>led
-24V
-30V
-50V
>TL
-TL singel
-TL multy
-TL blacklight
>Gloeilamp
-20W
-50W
-100W
>boren
-15
-20
-25
-30
-32
>tangen
-knip
-bek
-multy
-grip
>kast4
>boren
-2
-5.5
-7
-10
>zekeringkast
>contactor
-3p
-6p
-2p
>DOMO
-TL55
-TL25
>kast1
>oefeingen
-foutzoek1
-foutzoek2
-foutzoek3
-foutzoek4
>lampen
>led
-24V
-30V
-50V
>TL
-TL singel
-TL multy
-TL blacklight
>Gloeilamp
-20W
-50W
-100W
Hoe doen jullie dit?
Mvg. Knipper
Gewijzigd op 26/02/2014 13:51:30 door Php knipper
Dit begint bij een goed database model (database optimalisatie).
Dan zou dit geen probleem moeten zijn. Hoe heb je je database nu opgebouwd?
Toevoeging op 26/02/2014 13:56:05:
Dit begint bij een goed database model (database optimalisatie).
Dan zou dit geen probleem moeten zijn. Hoe heb je je database nu opgebouwd?
Dan zou dit geen probleem moeten zijn. Hoe heb je je database nu opgebouwd?
Toevoeging op 26/02/2014 13:56:05:
Dit begint bij een goed database model (database optimalisatie).
Dan zou dit geen probleem moeten zijn. Hoe heb je je database nu opgebouwd?
Als de diepte van de boom ongedefinieerd is, dan is het nested set model waarschijnlijk het beste model. Niet eenvoudig, wel erg flexibel.
http://en.wikipedia.org/wiki/Nested_set_model
http://en.wikipedia.org/wiki/Nested_set_model
Dit is mijn huidige opstelling, het is wel gemaakt voor maar 1 sub-lijst maar ik wil oneindig dieper kunnen
DATABASE
DATABASE
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
inventaris
naam: naam (label) van deze lijst
id: id van de lijst
beheer_id: id van de gebruiker die deze lijst kan bewerken
inventaris_inhoudt
id:
naam: naam van het item
aantal: aantal dat er van dit item zijn
inventaris_id: id waar dit hoort in welke inventaris
sub_id: id van de subcategorie
inventaris_sub
id:
inventaris_id: id van de inventaris waar deze sub lijst in thuis hoort
naam: naam (label)dat deze subcategorie krijgt
naam: naam (label) van deze lijst
id: id van de lijst
beheer_id: id van de gebruiker die deze lijst kan bewerken
inventaris_inhoudt
id:
naam: naam van het item
aantal: aantal dat er van dit item zijn
inventaris_id: id waar dit hoort in welke inventaris
sub_id: id van de subcategorie
inventaris_sub
id:
inventaris_id: id van de inventaris waar deze sub lijst in thuis hoort
naam: naam (label)dat deze subcategorie krijgt
Gewijzigd op 26/02/2014 14:21:59 door php knipper
een FK naar dezelfde tabel lijkt mij de oplossing. In onderstaand voorbeeld is PARENT_ID de FK naar dezelfde tabel (SUBCATS)
wil je nu alle items hebben in kast drie dan heb je wel een iets wat ingewikkelder loopje nodig of beter een Recursive function
Toevoeging op 26/02/2014 14:54:21:
Ik zou overigens wel de items (kniptang, boor etc) en de (sub)categorieën in een aparte tabel houden
Code (php)
1
2
3
4
5
6
2
3
4
5
6
SUBCATS:
ID | NAAM | PARENT_ID
1 | kast3 | 0
2 | tangen | 1 (verwijst dus naar kast3)
3 | knip | 2 (verwijst dus naar tangen)
ID | NAAM | PARENT_ID
1 | kast3 | 0
2 | tangen | 1 (verwijst dus naar kast3)
3 | knip | 2 (verwijst dus naar tangen)
wil je nu alle items hebben in kast drie dan heb je wel een iets wat ingewikkelder loopje nodig of beter een Recursive function
Toevoeging op 26/02/2014 14:54:21:
Ik zou overigens wel de items (kniptang, boor etc) en de (sub)categorieën in een aparte tabel houden
Gewijzigd op 26/02/2014 14:55:09 door Frank Nietbelangrijk
en hoe kan ik de items dan koppelen er rekening mee houdent dat er ook items kunnen staan bij kast3 dus er kunnen nog sub categorieën in staan maar ook items
Code (php)
1
2
3
4
5
2
3
4
5
ITEMS:
ID | NAAM | SUBCAT_ID
1 | pot verf | NULL (staat niet in een subcat)
2 | kniptang | 2 (verwijst dus naar kast3)
ID | NAAM | SUBCAT_ID
1 | pot verf | NULL (staat niet in een subcat)
2 | kniptang | 2 (verwijst dus naar kast3)
Een andere approach is om te stellen dat elk item ALTIJD in een subcategorie thuishoort.
Je kunt dan een subcategorie 'root' maken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
SUBCATS:
ID | NAAM | PARENT_ID
1 | root | NULL
2 | kast3 | 1
3 | tangen | 2 (verwijst dus naar kast3)
ITEMS:
ID | NAAM | SUBCAT_ID
1 | pot verf | 1 (verwijst naar root)
2 | kniptang | 3 (verwijst dus naar tangen)
3 | doekjes | 2 (verwijst dus naar kast3)
ID | NAAM | PARENT_ID
1 | root | NULL
2 | kast3 | 1
3 | tangen | 2 (verwijst dus naar kast3)
ITEMS:
ID | NAAM | SUBCAT_ID
1 | pot verf | 1 (verwijst naar root)
2 | kniptang | 3 (verwijst dus naar tangen)
3 | doekjes | 2 (verwijst dus naar kast3)
Kast drie heeft nu in zich:
- een lade of bak met tangen
- doekjes
Gewijzigd op 26/02/2014 15:45:18 door Frank Nietbelangrijk




