meerdere waardes opslaan in 1 record
Ik heb een website draaien waarop veiligheidsschoenen verkocht worden. Deze schoenen hebben normen. In mijn tabel schoenen is dan ook een veld norm_id er bestaat een aparte tabel met norm en bijbehorende beschrijvingen. Nu moeten echter bij zoeken op de site wanneer er bijv schoenen met de norm S3 + N gezocht worden ook alle schoenen met norm S3 getoond worden.
Eigenlijk moeten er dus meerdere normen in het veld worden opgeslagen hoe kan ik dat het beste aanpakken? Als ik er nl een varchar record van maak kan ik wel meerdere id's opslaan, maar dat werkt dan weer niet bij het ophalen.
Of kan ik het in php afhandelen?
Alvast hartelijk bedankt.
Groet
Gert
normaliseren, zie de tutorials.
Meerdere waardes sla je nooit en te nimmer op in 1 record, dat is de grootste fout die je kunt maken. Jij zult met een koppeltabel aan de slag moeten om zo een verband te leggen tussen 2 tabellen met gegevens.
Edit: url toegevoegd.
Ga Meerdere waardes sla je nooit en te nimmer op in 1 record, dat is de grootste fout die je kunt maken. Jij zult met een koppeltabel aan de slag moeten om zo een verband te leggen tussen 2 tabellen met gegevens.
Edit: url toegevoegd.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
je moet de tabel schoenen ontdoen van het veld norm en een aparte tabel maken voor de normen.
Deze twee tabellen knup je vervolgens aan elkaar in een koppeltabel.
Voorbeeld
-- schoenen
id (int)
omschrijving (varchar)
normen
id(int)
omschrijving ( varchar)
norm_schoen
id
schoen_id
norm_id
Bij de vraag zoals je hem hierboven stelt zal de sql iets worden in de trend van
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// tags voor de kleurtjes
$sql= "SELECT
schoenen.omschrijving
normen.omschrijving
FROM
schoenen,
normen,
norm_schoen
WHERE
schoenen.id = norm_schoen.schoen_id
AND
norm.id = norm_schoen.norm_id
AND
normen.omschrijving =" mysql_real_escape_string($_POST['norm']);
?>
// tags voor de kleurtjes
$sql= "SELECT
schoenen.omschrijving
normen.omschrijving
FROM
schoenen,
normen,
norm_schoen
WHERE
schoenen.id = norm_schoen.schoen_id
AND
norm.id = norm_schoen.norm_id
AND
normen.omschrijving =" mysql_real_escape_string($_POST['norm']);
?>
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Ik heb het overigens niet helemaal goed opgeschreven zie ik nu.
Het is precies andersom. Als je zoekt op S3 moet hij ook alles met S3+N weergeven.
Quote:
Dat is dus niet goed, dat kan niet. Je hebt een koppeltabel nodig, zie het voorbeeld van Klaasjan.Alleen de id's van de normen die bij de schoenen horen staan in de tabel schoenen.