Associ|ative entity

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rene janssen

rene janssen

19/12/2014 23:30:56
Quote Anchor link
Hallo allemaal.

Voor mijn opleiding moet ik een koppeltabel maken voor many to many relaties.
Alleen ik heb geen idee hoe ik dit moet doen.
ik heb dus twee tabellen die ik moet koppelen via zo'n tabel.

Kan iemand mij vertellen:
Waar kan ik een tutorial vinden hierover?
Wilt iemand mij hierbij helpen?( eventueel via mail of skype chat of een prive message hier.)
Of weet iemand een duidelijke site waar ik dit kan leren.

Alles en iedereen is welkom :)


Groet
 
PHP hulp

PHP hulp

23/12/2024 06:53:59
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/12/2014 23:38:32
Quote Anchor link
Hallo Rene,

Ik denk wel dat we je kunnen helpen. Vertel eens iets meer over die twee tabellen die je al hebt? Verder ben ik een beetje verrast door je titel. Hoe kom je aan een omschrijving als Associatieve entity? Heb je al iets in PHP geschreven?
 
Rene janssen

rene janssen

19/12/2014 23:49:44
Quote Anchor link
De Associatieve entity heb ik van... Youtube.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/12/2014 11:53:39
Quote Anchor link
Tabel a:
- a_id
- a_name
- a_other

Tabel b:
- b_id
- b_name
- b_other

Tabel a_b
- a_id
- b_id

De vetgedrukte kolommen behoren tot de primary key.

Bovenstaande is de meest voorkomende vorm van een koppeltabel.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/12/2014 12:55:17
Quote Anchor link
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
17
18
19
20
21
22
23
24
25
26
persons
-------------------------------------
person_id | name  | email
-------------------------------------
    1     | Frank | [email protected]
    2     | Ger   | [email protected]
    3     | Rene  | [email protected]
-------------------------------------

cars
-------------------------------------
car_id | brand    | model
-------------------------------------
   1   | Mercedes | sprinter
   2   | Peugeot  | 206
   3   | Volvo    | 740
-------------------------------------

persons_cars
-----------------------
person_id | car_id  
-----------------------
    2     | 1
    1     | 2
    3     | 2
-----------------------


Verkrijg alle JOINS (verbindingen tussen peronen en auto's)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT p.person_id, p.name, p.email, c.car_id, c.brand, c.model
FROM persons_cars pc
JOIN persons p ON p.person_id=pc.person_id
JOIN cars c ON c.car_id=pc.car_id


resultaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
"1","Frank","[email protected]","2","Peugeot","206"
"2","Ger","[email protected]","1","Mercedes","Sprinter"
"3","Rene","[email protected]","2","Peugeot","206"


Verkrijg de Auto's die aan een persoon gekoppeld zijn
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT c.car_id, c.brand, c.model, p.person_id, p.name, p.email
FROM cars c
JOIN persons_cars pc ON c.car_id=pc.car_id
JOIN persons p ON p.person_id=pc.person_id
ORDER BY c.car_id


resultaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
"1","Mercedes","Sprinter","2","Ger","[email protected]"
"2","Peugeot","206","3","Rene","[email protected]"
"2","Peugeot","206","1","Frank","[email protected]"


Verkrijg ALLE Auto's
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT c.car_id, c.brand, c.model, p.person_id, p.name, p.email
FROM cars c
LEFT JOIN persons_cars pc ON c.car_id=pc.car_id
LEFT JOIN persons p ON p.person_id=pc.person_id
ORDER BY c.car_id


resultaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
"1","Mercedes","Sprinter","2","Ger","[email protected]"
"2","Peugeot","206","1","Frank","[email protected]"
"2","Peugeot","206","3","Rene","[email protected]"
"3","Volvo","740",NULL,NULL,NULL



Toevoeging op 20/12/2014 13:01:19:

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
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
-- phpMyAdmin SQL Dump
-- version 4.2.13
-- http://www.phpmyadmin.net
--
-- Machine: localhost
-- Gegenereerd op: 20 dec 2014 om 12:59
-- Serverversie: 5.5.40-MariaDB
-- PHP-versie: 5.4.16

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Databank: `vrienden`
--

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `cars`
--

CREATE TABLE IF NOT EXISTS `cars` (
`car_id` int(11) NOT NULL,
  `brand` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `model` varchar(100) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Gegevens worden gexporteerd voor tabel `cars`
--

INSERT INTO `cars` (`car_id`, `brand`, `model`) VALUES
(1, 'Mercedes', 'Sprinter'),
(2, 'Peugeot', '206'),
(3, 'Volvo', '740');

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `persons`
--

CREATE TABLE IF NOT EXISTS `persons` (
`person_id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

--
-- Gegevens worden gexporteerd voor tabel `persons`
--

INSERT INTO `persons` (`person_id`, `name`, `email`) VALUES
(1, 'Frank', '[email protected]'),
(2, 'Ger', '[email protected]'),
(3, 'Rene', '[email protected]');

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `persons_cars`
--

CREATE TABLE IF NOT EXISTS `persons_cars` (
  `person_id` int(11) NOT NULL,
  `car_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Gegevens worden gexporteerd voor tabel `persons_cars`
--

INSERT INTO `persons_cars` (`person_id`, `car_id`) VALUES
(2, 1),
(1, 2),
(3, 2);

--
-- Indexen voor gexporteerde tabellen
--

--
-- Indexen voor tabel `cars`
--
ALTER TABLE `cars`
 ADD PRIMARY KEY (`car_id`);

--
-- Indexen voor tabel `persons`
--
ALTER TABLE `persons`
 ADD PRIMARY KEY (`person_id`);

--
-- Indexen voor tabel `persons_cars`
--
ALTER TABLE `persons_cars`
 ADD KEY `car_id` (`car_id`,`person_id`), ADD KEY `person_id` (`person_id`);

--
-- AUTO_INCREMENT voor gexporteerde tabellen
--

--
-- AUTO_INCREMENT voor een tabel `cars`
--
ALTER TABLE `cars`
MODIFY `car_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT voor een tabel `persons`
--
ALTER TABLE `persons`
MODIFY `person_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4;
--
-- Beperkingen voor gexporteerde tabellen
--

--
-- Beperkingen voor tabel `persons_cars`
--
ALTER TABLE `persons_cars`
ADD CONSTRAINT `persons_cars_ibfk_2` FOREIGN KEY (`person_id`) REFERENCES `persons` (`person_id`),
ADD CONSTRAINT `persons_cars_ibfk_1` FOREIGN KEY (`car_id`) REFERENCES `cars` (`car_id`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Gewijzigd op 20/12/2014 13:04:20 door Frank Nietbelangrijk
 



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.