Meerdere tabellen koppelen
Klopt deze structuur? Ik vraag het me af namelijk! Ik heb het net in elkaar gezet.
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
-- phpMyAdmin SQL Dump
-- version 2.10.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generatie Tijd: 20 Mar 2008 om 16:31
-- Server versie: 5.0.45
-- PHP Versie: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `portfolio`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `categorie`
--
CREATE TABLE `categorie` (
`id` int(11) NOT NULL auto_increment,
`categorie` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `categorie`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `cat_cat`
--
CREATE TABLE `cat_cat` (
`categorie_id` int(11) NOT NULL,
`portfolio_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden uitgevoerd voor tabel `cat_cat`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `cat_tec`
--
CREATE TABLE `cat_tec` (
`techniek_id` int(11) NOT NULL,
`portfolio_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden uitgevoerd voor tabel `cat_tec`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `foto`
--
CREATE TABLE `foto` (
`id` int(11) NOT NULL auto_increment,
`portfolio_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `foto`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `portfolio`
--
CREATE TABLE `portfolio` (
`id` int(11) NOT NULL auto_increment,
`titel` varchar(255) NOT NULL,
`opdrachtgever` varchar(255) NOT NULL,
`website` varchar(255) NOT NULL,
`omschrijving` text NOT NULL,
`jaar` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `portfolio`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `technieken`
--
CREATE TABLE `technieken` (
`id` int(11) NOT NULL auto_increment,
`techniek` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `technieken`
--
-- version 2.10.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generatie Tijd: 20 Mar 2008 om 16:31
-- Server versie: 5.0.45
-- PHP Versie: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `portfolio`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `categorie`
--
CREATE TABLE `categorie` (
`id` int(11) NOT NULL auto_increment,
`categorie` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `categorie`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `cat_cat`
--
CREATE TABLE `cat_cat` (
`categorie_id` int(11) NOT NULL,
`portfolio_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden uitgevoerd voor tabel `cat_cat`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `cat_tec`
--
CREATE TABLE `cat_tec` (
`techniek_id` int(11) NOT NULL,
`portfolio_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden uitgevoerd voor tabel `cat_tec`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `foto`
--
CREATE TABLE `foto` (
`id` int(11) NOT NULL auto_increment,
`portfolio_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `foto`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `portfolio`
--
CREATE TABLE `portfolio` (
`id` int(11) NOT NULL auto_increment,
`titel` varchar(255) NOT NULL,
`opdrachtgever` varchar(255) NOT NULL,
`website` varchar(255) NOT NULL,
`omschrijving` text NOT NULL,
`jaar` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `portfolio`
--
-- --------------------------------------------------------
--
-- Tabel structuur voor tabel `technieken`
--
CREATE TABLE `technieken` (
`id` int(11) NOT NULL auto_increment,
`techniek` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `technieken`
--
Ik heb er nu op aanraden van AndriesLouw koppeltabellen tussen gezet
Gewijzigd op 01/01/1970 01:00:00 door Jurgen B
Een DATE of YEAR lijkt mij meer voor de hand liggen, een INT is tenslotte geen jaartal. En laat je niet foppen door de 4, daarmee hou jij jezelf voor de gek.
De tabel portfoto kan volgens mij zo weg, die doet niks.
De tabel technieken lijkt mij niet goed, 1 techiek kun je voor meerdere portfolio's gebruiken en 1 portfolio kan meerdere technieken gebruiken. Dus een meer-op-meer relatie, dat kan alleen met een koppeltabel tussen portofolio en technieken.
Waarom je in de tabel categorie het portfolio_id opslaat, is mij niet duidelijk. Het lijkt mij ook niet goed. Ik verwacht eerder een categorie_id in de tabel portfolio.
Edit: Wel bijzonder dat je zegt geen hulp nodig te hebben
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Wat ik altijd bij 'categorie' tabellen doe is nog een 'parent_id' toevoegen. Mocht je meerdere lagen willen hebben, dan kan dat heel makkelijk!