Normaliseren + een query
Goedenavond,
Ik ben bezig met het normaliseren van een database. Ik heb een contact formulier. Daarvoor heb ik de volgende tabellen met de volgende velden aangemaakt
Form
- form_id
- input_name
- input_email
- input_website
- form_photo_id
- form_user_id
photos
- photo_id
- photo_name
- photo_hash
- photo_ext
- photo_type
- photo_folder
user
- user_id
- user_ip
- user_sys
Is dit een goede manier van normaliseren? En hoe zouden jullie een INSERT, SELECT query doen?
Alvast bedankt.
Niels K.
Ik ben bezig met het normaliseren van een database. Ik heb een contact formulier. Daarvoor heb ik de volgende tabellen met de volgende velden aangemaakt
Form
- form_id
- input_name
- input_email
- input_website
- form_photo_id
- form_user_id
photos
- photo_id
- photo_name
- photo_hash
- photo_ext
- photo_type
- photo_folder
user
- user_id
- user_ip
- user_sys
Is dit een goede manier van normaliseren? En hoe zouden jullie een INSERT, SELECT query doen?
Alvast bedankt.
Niels K.
Gewijzigd op 10/07/2010 22:07:59 door Niels Kieviet
Gesponsorde koppelingen:
Of het een goede manier van normaliseren is, is moeilijk te zeggen. Dat hangt namelijk af van de eisen van de applicatie die je aan het bouwen bent. Daar hebben wij nu geen inzicht in, maar op het eerste gezicht ziet het er goed uit.
Wat betreft je queries, dat hangt er ook maar net vanaf welke gegevens je wilt invoeren of selecteren. Stel dat je alle gegevens (user, photo en form) in moet voeren, dan zul je eerst de betreffende records in de user en photos tabellen aan moeten maken. Vraag na de INSERT queries het id op dat de records hebben gekregen en gebruik die in de INSERT query voor je form tabel.
Als dit je vraag niet beantwoord, zul je een iets specifiekere vraag moeten stellen. Dan kun je ook een gerichter antwoord krijgen...
Wat betreft je queries, dat hangt er ook maar net vanaf welke gegevens je wilt invoeren of selecteren. Stel dat je alle gegevens (user, photo en form) in moet voeren, dan zul je eerst de betreffende records in de user en photos tabellen aan moeten maken. Vraag na de INSERT queries het id op dat de records hebben gekregen en gebruik die in de INSERT query voor je form tabel.
Als dit je vraag niet beantwoord, zul je een iets specifiekere vraag moeten stellen. Dan kun je ook een gerichter antwoord krijgen...
Dank u voor het antwoord.
Sorry dat ik onduidelijk overkom maar voor mezelf is de vraagstelling natuurlijk wel duidelijk. Wat ik dus heb is een contact formulier waarbij de waarden in de database geschreven moet worden. Later moet ik deze gegevens kunnen opvragen.
Alle gegevens uit het formulier moeten, zo ver het mogelijk is, direct in 1 query in de database geschreven worden. Deze gegevens dus verdeelt over 3 tabellen.
dus de vraag is eigenlijk. Moet ik meerdere query's moeten gebruiken om de gegevens in de database te schrijven of niet?
Alvast bedankt
Sorry dat ik onduidelijk overkom maar voor mezelf is de vraagstelling natuurlijk wel duidelijk. Wat ik dus heb is een contact formulier waarbij de waarden in de database geschreven moet worden. Later moet ik deze gegevens kunnen opvragen.
Alle gegevens uit het formulier moeten, zo ver het mogelijk is, direct in 1 query in de database geschreven worden. Deze gegevens dus verdeelt over 3 tabellen.
dus de vraag is eigenlijk. Moet ik meerdere query's moeten gebruiken om de gegevens in de database te schrijven of niet?
Alvast bedankt
Gewijzigd op 10/07/2010 22:19:54 door Niels Kieviet
Ok. Duidelijk.
En hoe zou ik de query's volgens jouw moeten aanpakken?
En hoe zou ik de query's volgens jouw moeten aanpakken?
Ja, je zult meerdere queries nodig hebben. Je zult eerst de records in je user en photos tabellen in moeten voeren om achter het id te komen dat die records gekregen hebben (gebruik mysql_insert_id()). Pas als je die id's weet kun je het record in je form tabel invoeren...
Dat dacht ik al.. Jammer, maar bedankt voor je antwoord
Een query hoeft niet per se beter te zijn dan meerdere queries. Het moet ook niet je doel zijn om alles in zo min mogelijk queries te doen, maar juist in zo efficient mogelijke queries ;-)
Ok dat zal ik onthouden



