INSERT in meerdere tabellen in 1 query
Mijn database heeft een aantal tabellen:
- klantgegevens
- locatie
- werkervaring
Mensen kunnen zich online inschrijven voor een soort vacaturebank. Ze vullen in 1 formulier hun gegevens in, op welke locaties ze willen werken, en wat hun werkervaring is. Nu wil ik dit niet in 1 tabel stoppen, aangezien mensen wellicht op meerdere locaties willen werken, en vaak ook meerdere banen hebben gehad. Het punt is dat alles in 1 formulier staat, maar dat ik dus in 1 query gegevens in meerdere tabellen in moet voeren. Kan dit? Of zie ik iets over het hoofd?
Je kunt toch ook meerdere queries uitvoeren, één voor elke tabel?
De hele rimbam staat in 1 formulier, volgens mij kan ik dan geen meerdere queries achter elkaar zetten?
Code (php)
1
2
3
4
2
3
4
<?php
mysql_query("INSERT into Table1 ...");
mysql_query("INSERT into Table2 ...");
?>
mysql_query("INSERT into Table1 ...");
mysql_query("INSERT into Table2 ...");
?>
Of zie ik dat verkeerd?
volgens mysql handleiding kan in je in een regel meerdere query's zetten vmd semi-colon : punt-komma
dan wordt het:
@Leroy: Het is dmv en niet vmd (en staat voor: Door Middel Van)
Gewijzigd op 01/01/1970 01:00:00 door Dirk
Wanneer je geen transaction gebruikt, loop je het risico dat de data corrupt raakt wanneer er ergens een query fout gaat. Je moet dan de hele serie queries ongedaan maken of juist niet COMMIT-ten. Zie de handleiding voor de details.
- Persoon
- Plaatsen
- Banen
- koppeltabel (id, persoonid, plaatsid)
- koppeltabel (id, persoonid, baanid) (o.i.d.)
Quote:
Dit heeft namelijk helemaal niets met 'willen' te maken, je kunt het niet in 1 tabel opslaan! Althans, niet als je de data ook nog op een eenvoudige manier weer ter beschikking wilt hebben...Nu wil ik dit niet in 1 tabel stoppen, aangezien mensen wellicht op meerdere locaties willen werken, en vaak ook meerdere banen hebben gehad.
De bekende oplossing:
1) Gooi de huidige database weg
2) Ga normaliseren
3) Maak een nieuwe database aan