variable database selecteren
Na het onclickprobleem van daarnet stoot ik weer tegen een ander probleem.
Ik heb dus een invulformulier gemaakt waar ik uit verschillende landen kan kiezen uit de verschillende werelddelen.
Dit doormiddel van een select box.
Nu de landen stellen in men mysql de tabellen voor van de databese en de werelddelen stellen de databases voor.
alles naar een database sturen lukt me wel maar als ik moet beginnen kiezen uit verschillende databases begint het wat moeilijker te worden.
Weet iemand raad.
Alvast bedankt
Als ik het zo hoor dan moet je echt normaliseren. Want verschillende databases gebruiken voor verschillende werelddelen dat is echt absurd..
ok bedankt ik zal eens kijken hoe ik dit dan het beste kan doen door te normaliseren.
Gewijzigd op 01/01/1970 01:00:00 door Philippe Mes
hier gaat men tot de derde normaalvorm.
als ik het goed heb bedoelen ze hiermee : eerst de database - dan de tabel - en dan de velden van de tabel.
Of zit ik fout.
Databases hebben er niets mee te maken. Je moet alles binnen één database doen. Dat is ook wat ik probeerde te zeggen.
Ja eerst de database 1 dus dan verschillende tabellen en in de verschillende tabellen verschillende velden.
Ja dat is wel de bedoeling ja
Eerst kies ik een werelddeel dan een land en als ik het land gekozen heb kan ik weer gegevens invullen zoals straatnaam,telefoonnummer,... .
Dus dan zou ik zoiets moeten maken vb:
database : wereld
tabel : europa
veldnaam : belgië
Ok en dan zit ik vast
moeten nog andere gegevens bevatten. moet ik mss deze in een andere tabel plaatsen en die 2 tabellen met elkaar laten communiceren?
Philippe schreef op 13.08.2007 16:06:
Nee, ga normaliseren. Daarmee bepaal je de soorten data en de onderlinge relaties tussen de data.Ja eerst de database 1 dus dan verschillende tabellen en in de verschillende tabellen verschillende velden.
Uiteindelijk kom je tot een datamodel, maar zover ben je nog lang niet. Vergeet even dat je een database met tabellen en records gaat aanmaken, ga eerst normaliseren. Ga vooral NIET in tabellen en kolommen denken, dat is de grootste fout die je kunt maken tijdens het normaliseren.
Edit:
Quote:
database : wereld
tabel : europa
veldnaam : belgië
tabel : europa
veldnaam : belgië
Nee dus.
Er bestaat geen tabel Europa, Europa is een werelddeel. Je kunt dus wel een tabel 'werelddelen' hebben met daarin het record 'europa'. Zo kun je ook tabel 'landen' hebben, met bv. Nederland en China. Nederland koppel je met een foreignkey aan het werelddeel Europa en China wordt gekoppeld aan Azië. Hier heb je dus te maken het de datasoorten 'werelddelen' en 'landen'.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Ok ik zal het proberen ik laat wel iets weten als het lukt.
Ik heb gisteren die tutorial doorgenomen en heb een aantal zaken opgezocht.
Nu ik heb geprobeert zo'n databasemodel te maken.
Hieronder het databasemodel.
Tabelnaam Werelddelen
Tabelveld Werelddeel
record Europa
record Azië
record Oceanië
record Afrika
record Noord-Amerika
record Latijns-Amerika
Tabelnaam Landen
Tabelveld Land
Record België
Record Nederland
Record ...
Tabelnaam Gegevens
Tabelveld ID
Tabelveld Naam
Tabelveld Stad
Tabelveld Straat
Tabelveld Nr
Tabelveld Postcode
Tabelveld Telefoonnummer
Tabelveld Gsm 1
Tabelveld Gsm 2
Tabelveld Faxnummer
Tabelveld Email
Tabelveld Website
Nu mijn vraag : Is dit een goed databasemodel of is dit totaal fout.
Je krijgt dan meer dit:
Tabelnaam Werelddelen
Tabelveld id
Tabelveld Werelddeel
record 1,Europa
record 2,Azië
..
Tabelnaam Landen
Tabelveld id
Tabelveld land
Tabelveld werelddeel
record 1,België,1 //belgie ligt in europa dus werelddeel 1 (want europa heeft id 1)
Tabelnaam Gegevens
Tabelveld ID
Tabelveld Naam
Tabelveld Stad
Tabelveld Land //dit is het id van het land, dit had je er nog niet in staan maar is wel handig.
Tabelveld Straat
Tabelveld Nr
Tabelveld Postcode
Tabelveld Telefoonnummer
Tabelveld Gsm 1
Tabelveld Gsm 2
Tabelveld Faxnummer
Tabelveld Email
Tabelveld Website
Eventueel kun je steden (en straten) ook nog in losse tabellen zetten maar dan is het de vraag hoever je wilt gaan.
Bedankt.
Adressen kennen naast de straatnaam en het huisnummer ook nog een extensie, bv. Straatnaam 3 a. Daar heb je dus 3 velden voor nodig, jij hebt er slechts 2.
Afhankelijk van het land, is het ook gebruikelijk om de staat/provincie op te slaan. Dit ontbreekt in zijn geheel.
Wat ook nog ontbreekt, en niet onbelangrijk is, zijn de datatypes die je moet gaan gebruiken. Besteed hier de nodige aandacht aan, anders loopt de boel nog in het honderd. Dit geldt ook voor het instellen van de foreignkey's.
Ps. Een land kan in meerdere werelddelen liggen, je hebt dus een koppeltabel nodig tussen de tabel 'werelddelen' en 'landen'.
Pps. Weet je zeker dat je per persoon slechts 1 adres gaat opslaan? Ik beschik bv. al over 5 adressen...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Allereerst srry dat ik dit toppic evn terug bovenhaal,
Maar ik zit nog met wat vragen in verband met men databasemodel.
Ik heb geprobeert het uit te werken op papier
en dit is het resultaat geworden :
Database Karting
Tabel Werelddelen
2 velden
Veld ID
Type : INT
Length : 11
Attributes : unsigned
Extra : auto_increment
Primary key
Veld Werelddeel
Type : varchar
Length : 150
Storage engine : InnoDB
Tabel Landen
3 velden
Veld ID
Type : INT
Length : 11
Attributes : unsigned
Extra : auto_increment
Primary key
Veld Werelddeel
Foreignkey
Veld Land
Type : varchar
Length : 150
Storage engine : InnoDB
Tabel Gegevens
14 velden
Veld ID
Type : INT
Length : 11
Attributes : unsigned
Extra : auto_increment
Primary key
Veld Land
Foreignkey
Veld Naam
Type : varchar
Length : 100
Veld ...
Storage engine : InnoDB
Nu de vragen :
1 : Is dit goed uit gewerkt.
2 : Als ik dit in mysql invoer via phpmyadmin hoed kan ik dan zo een foreignkey instellen. Die vind ik namelijk niet.
Dit zijn de twee belangrijkste vragen die ik heb op dit moment.
Alvast heel erg bedankt.
2) Leer SQL! PMA is slechts een tooltje en nog een vrij beroerde ook nog... FK's kun je instellen via
- selecteer tabel
- ga naar het tabblad 'structuur'
- klik op de link 'Relatie overzicht'
Maar schrijf in het vervolg je eigen SQL, daar leer je veel meer van en je kunt de boel veel beter onderhouden. Er zijn dan geen beperkingen meer die door de tool worden opgelegd.
Ik ga zodadelijk eens kijken voor een boek over sql zodat ik me daar wat in kan verdiepen.