Database opbouwen
Zal ik per product/categorie een nieuwe database aanmaken of alleen een nieuw tabel? een nieuw tabel aanmaken betekend dat ik veel tabellen krijg in de database.
Opbouw categorie->subcategorie->filter:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Games - Consoles - Merk
- Model
- Games - Uitgever
- Ontwikkelaar
- Gerne
- Merk
- Model
- Merchandise - Beelden/Poppen/knuffels
- Overig
Muziek - Vinyl platen - Artiest
- Gerne
- Label
- Drager
- CD's
- Cassettes
- Model
- Games - Uitgever
- Ontwikkelaar
- Gerne
- Merk
- Model
- Merchandise - Beelden/Poppen/knuffels
- Overig
Muziek - Vinyl platen - Artiest
- Gerne
- Label
- Drager
- CD's
- Cassettes
Moet ik nu voor elke filter ook een databasetabel aanmaken? of weet iemand een andere oplossing.
Het probleem waar ik ook mee zit is dat een merk (bijvoorbeeld Nintendo) ook een uitgever kan zijn. Of het Merk Sony Playstation kan ook de label Sony zijn.
Gewijzigd op 25/03/2015 22:11:32 door Ferdi R
En wat als je dadelijk subsubcategorieën hebt? Nu zit je vast aan twee nivea's (en mogelijk twee tabellen). Je zou ook kunnen overwegen een boomstructuur (in één tabel) te maken - dan kun je je (boom)structuur indelen als je wilt mits deze aan een boomstructuur blijft voldoen, anders moet je misschien aan een soort van veel-op-veel-relatie constructie gaan denken.
Ik wil namelijk meer categorieën gebruiken zoals: Games, Muziek, Films, Modeltreinen, Postzegels ect...
losse tabellen zou nog wat voor te zeggen zijn, maar losse databases is overdreven en onwerkbaar.
Decisions decisions :).
EDIT: je zou in je database-ontwerp dus rekening moeten houden met wat je met je data doet (hoe je hiermee omgaat), dit houdt ook in: hoe kan ik de database handig opzetten zodat ik vervolgens ook op een handige manier de data er weer uit kan halen.
Gewijzigd op 26/03/2015 13:38:55 door Thomas van den Heuvel
Ik had dit in gedachten maar dan zit je al met de gernes die verschillen per product.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Categorie
ID - Titel - Subtitel
01 - Games - Videogames en spelcomputers
02 - Muziek - Vinyl, CD's en cassettebandjes
03 - Modeltreinen - Modeltreinen en accessoires
Categorie_Sub
ID - Cat_id - Titel
01 - 01 - Consoles
02 - 01 - Games
03 - 01 - Merchandise
04 - 02 - Vinylplaten
05 - 02 - CD's
06 - 02 - Cassettebandjes
Filters
ID - Titel - Cat_id - Cat_sub_id
01 - Merk - 01 - 01, 02
02 - Model - 01 - 01, 02
03 - Uitgever - 01 - 02
04 - Ontwikkelaar - 01 - 02
05 - Gerne - 01 - 02 (Gernes voor games)
06 - Gerne - 02 - 04, 05, 06 (Gernes voor muziek)
Filter_Merk
ID - Titel
01 - Nintendo
02 - Playstation (Sony)
03 - Xbox (Microsoft)
04 - Sega
05 - Atari
Filter_Model
ID - Merk_id - Titel
01 - 01 - NES (Nintendo entertainment system)
02 - 01 - SNES (Super Nintendo entertainment system)
03 - 01 - N64 (Nintendo 64)
04 - 01 - NGC (Nintendo GameCube)
05 - 01 - WII (Nintendo WII)
06 - 02 - PS1 (Playstation 1)
07 - 02 - PS2 (Playstation 2)
Filter_Gernes_Games
ID - Titel
01 - Avontuur
02 - Shooter
03 - Racing
04 - Sport
Filter_Gernes_Muziek
ID - Titel
01 - POP
03 - Pock
03 - Country
04 - Nederlands
ID - Titel - Subtitel
01 - Games - Videogames en spelcomputers
02 - Muziek - Vinyl, CD's en cassettebandjes
03 - Modeltreinen - Modeltreinen en accessoires
Categorie_Sub
ID - Cat_id - Titel
01 - 01 - Consoles
02 - 01 - Games
03 - 01 - Merchandise
04 - 02 - Vinylplaten
05 - 02 - CD's
06 - 02 - Cassettebandjes
Filters
ID - Titel - Cat_id - Cat_sub_id
01 - Merk - 01 - 01, 02
02 - Model - 01 - 01, 02
03 - Uitgever - 01 - 02
04 - Ontwikkelaar - 01 - 02
05 - Gerne - 01 - 02 (Gernes voor games)
06 - Gerne - 02 - 04, 05, 06 (Gernes voor muziek)
Filter_Merk
ID - Titel
01 - Nintendo
02 - Playstation (Sony)
03 - Xbox (Microsoft)
04 - Sega
05 - Atari
Filter_Model
ID - Merk_id - Titel
01 - 01 - NES (Nintendo entertainment system)
02 - 01 - SNES (Super Nintendo entertainment system)
03 - 01 - N64 (Nintendo 64)
04 - 01 - NGC (Nintendo GameCube)
05 - 01 - WII (Nintendo WII)
06 - 02 - PS1 (Playstation 1)
07 - 02 - PS2 (Playstation 2)
Filter_Gernes_Games
ID - Titel
01 - Avontuur
02 - Shooter
03 - Racing
04 - Sport
Filter_Gernes_Muziek
ID - Titel
01 - POP
03 - Pock
03 - Country
04 - Nederlands
Maar voor modeltreinen heb je natuurlijk weer andere merken en een uitgever van een game kan weer de merk zijn.
Gewijzigd op 26/03/2015 14:21:14 door Ferdi R
Hele andere denkrichting wellicht: wat je in feite wilt is het opslaan van kenmerken en deze kenmerken zijn van een type (en misschien zitten deze types in een soort van hierarchie)? De vraag is of je deze associaties keihard wilt vastleggen in je structuur. Je zou ook aan een soort van "losse associaties" kunnen denken. Ooit gedacht aan een soort van "tagging"?
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
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
Categorie
ID - Titel - Subtitel
01 - Games - Videogames en spelcomputers
02 - Muziek - Vinyl, CD's en cassettebandjes
03 - Modeltreinen - Modeltreinen en accessoires
Categorie_Sub
ID - Cat_id - Titel
01 - 01 - Consoles
02 - 01 - Games
03 - 01 - Merchandise
04 - 02 - Vinylplaten
05 - 02 - CD's
06 - 02 - Cassettebandjes
Producten_Games
ID - Cat_id - Cat_sub_id - Titel - Subtitel - Gerne_Filter - Merk_Filter - Model_filter - ect..
01 - 01 - 02 - Airwolf - Fly Away - Vliegen - Nintendo - NES -
Producten_Muziek
ID - Cat_id - Cat_sub_id - Titel - Subtitel - Gerne_Filter - Uitgever_Filter - ect..
01 - 02 - 04 - Queen - We will rock you - Rock - EMI Records -
ID - Titel - Subtitel
01 - Games - Videogames en spelcomputers
02 - Muziek - Vinyl, CD's en cassettebandjes
03 - Modeltreinen - Modeltreinen en accessoires
Categorie_Sub
ID - Cat_id - Titel
01 - 01 - Consoles
02 - 01 - Games
03 - 01 - Merchandise
04 - 02 - Vinylplaten
05 - 02 - CD's
06 - 02 - Cassettebandjes
Producten_Games
ID - Cat_id - Cat_sub_id - Titel - Subtitel - Gerne_Filter - Merk_Filter - Model_filter - ect..
01 - 01 - 02 - Airwolf - Fly Away - Vliegen - Nintendo - NES -
Producten_Muziek
ID - Cat_id - Cat_sub_id - Titel - Subtitel - Gerne_Filter - Uitgever_Filter - ect..
01 - 02 - 04 - Queen - We will rock you - Rock - EMI Records -
En dat ik dat met SELECT DISTINCT de filters ophaal in elke Subcategorie.
Nu test je mogelijk met 10 producten en 25 eigenschappen, maar als je straks toch 10.000 producten hebt met 35.000 eigenschappen, dan zou zo'n distinct query zo maar ineens best traag kunnen worden.
Dan zou ik alles meer en meer moeten koppelen.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Categorie
ID - Titel - Subtitel
01 - Games - Videogames en spelcomputers
02 - Muziek - Vinyl, CD's en cassettebandjes
03 - Modeltreinen - Modeltreinen en accessoires
Categorie_Sub
ID - Cat_id - Titel
01 - 01 - Consoles
02 - 01 - Games
03 - 01 - Merchandise
04 - 02 - Vinylplaten
05 - 02 - CD's
06 - 02 - Cassettebandjes
07 - 03 - H0 (1:87)
08 - 03 - N (1:60)
Filters
ID - Titel - Cat_id - Cat_sub_id
01 - Merk - 01 - 01, 02 (Merk voor games)
02 - Model - 01 - 01, 02
03 - Uitgever - 01 - 02
04 - Ontwikkelaar - 01 - 02
05 - Gerne - 01 - 02 (Gernes voor games)
06 - Gerne - 02 - 04, 05, 06 (Gernes voor muziek)
07 - Merk - 03 - 07, 08 (Merk voor modeltreinen)
08 - Stroom - 03 - 07, 08
Filter_Gegevens
ID - Filter_id - Titel
01 - 01 - Nintendo
02 - 01 - Playstation (Sony)
03 - 01 - Xbox (Microsoft)
04 - 01 - Sega
05 - 01 - Atari
06 - 07 - Mrklin
07 - 07 - Fleischmann
08 - 02 - NES (Nintendo entertainment system)
09 - 02 - SNES (Super Nintendo entertainment system)
10 - 02 - N64 (Nintendo 64)
11 - 02 - NGC (Nintendo GameCube)
12 - 02 - WII (Nintendo WII)
13 - 02 - PS1 (Playstation 1)
14 - 02 - PS2 (Playstation 2)
15 - 06 - POP
16 - 06 - Rock
17 - 06 - Country
18 - 06 - Nederlands
19 - 05 - Avontuur
20 - 05 - Shooter
21 - 05 - Sport
22 - 05 - Racing
23 - 05 - Vliegen
24 - 03 - EMI Records
Producten_Games
ID - Cat_id - Cat_sub_id - Titel - Subtitel - Gerne_Filter - Merk_Filter - Model_filter - ect..
01 - 01 - 02 - Airwolf - Fly Away - 23 - 01 - 08 -
Producten_Muziek
ID - Cat_id - Cat_sub_id - Titel - Subtitel - Gerne_Filter - Uitgever_Filter - ect..
01 - 02 - 04 - Queen - We will rock you - 16 - 24 -
ID - Titel - Subtitel
01 - Games - Videogames en spelcomputers
02 - Muziek - Vinyl, CD's en cassettebandjes
03 - Modeltreinen - Modeltreinen en accessoires
Categorie_Sub
ID - Cat_id - Titel
01 - 01 - Consoles
02 - 01 - Games
03 - 01 - Merchandise
04 - 02 - Vinylplaten
05 - 02 - CD's
06 - 02 - Cassettebandjes
07 - 03 - H0 (1:87)
08 - 03 - N (1:60)
Filters
ID - Titel - Cat_id - Cat_sub_id
01 - Merk - 01 - 01, 02 (Merk voor games)
02 - Model - 01 - 01, 02
03 - Uitgever - 01 - 02
04 - Ontwikkelaar - 01 - 02
05 - Gerne - 01 - 02 (Gernes voor games)
06 - Gerne - 02 - 04, 05, 06 (Gernes voor muziek)
07 - Merk - 03 - 07, 08 (Merk voor modeltreinen)
08 - Stroom - 03 - 07, 08
Filter_Gegevens
ID - Filter_id - Titel
01 - 01 - Nintendo
02 - 01 - Playstation (Sony)
03 - 01 - Xbox (Microsoft)
04 - 01 - Sega
05 - 01 - Atari
06 - 07 - Mrklin
07 - 07 - Fleischmann
08 - 02 - NES (Nintendo entertainment system)
09 - 02 - SNES (Super Nintendo entertainment system)
10 - 02 - N64 (Nintendo 64)
11 - 02 - NGC (Nintendo GameCube)
12 - 02 - WII (Nintendo WII)
13 - 02 - PS1 (Playstation 1)
14 - 02 - PS2 (Playstation 2)
15 - 06 - POP
16 - 06 - Rock
17 - 06 - Country
18 - 06 - Nederlands
19 - 05 - Avontuur
20 - 05 - Shooter
21 - 05 - Sport
22 - 05 - Racing
23 - 05 - Vliegen
24 - 03 - EMI Records
Producten_Games
ID - Cat_id - Cat_sub_id - Titel - Subtitel - Gerne_Filter - Merk_Filter - Model_filter - ect..
01 - 01 - 02 - Airwolf - Fly Away - 23 - 01 - 08 -
Producten_Muziek
ID - Cat_id - Cat_sub_id - Titel - Subtitel - Gerne_Filter - Uitgever_Filter - ect..
01 - 02 - 04 - Queen - We will rock you - 16 - 24 -
Zo kan ik filters toevoegen maar ook wijzigen.
Gewijzigd op 26/03/2015 19:40:03 door Ferdi R