HELP! Dit lukt me niet en kan niet verder.

Overzicht

Sponsored by: Vacatures door Monsterboard

Ossie ossiet

ossie ossiet

11/03/2015 12:14:37
Anchor link
hallo bezoekers,

Wie kan me hiermee helpen. Ik ben pas begonnen met database en kom er hierzo niet mee uit.

De fout die sql aangeeft is CANN NOT ADD FOREIGN KEY CONTRAINT;

Quote:
CREATE TABLE IF NOT EXISTS Klant (
Naam_Klant VARCHAR(45) NULL AUTO_INCREMENT,
Adres VARCHAR(45) NOT NULL DEFAULT '',
Postcode varchar(45) NOT NULL,
Woonplaats VARCHAR(45) NOT NULL,
Telefoonnummer INT(11) NOT NULL,
PRIMARY KEY (Naam_Klant),
UNIQUE INDEX Naam_en_Adres (Naam_Klant,Adres)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

CREATE TABLE IF NOT EXISTS Uitleen (
Uitleen_Id Int(11) NOT null AUTO_INCREMENT,
Naam_Klant VARCHAR(45) NULL ,
Naam_Schilderij VARCHAR(45) NOT NULL,
Uitleen_Datum DATE NOT NULL ,
Inlever_Datum DATE NOT NULL,
Waardering INT(2) NOT NULL,
PRIMARY KEY (Uitleen_Id),
CONSTRAINT FOREIGN KEY (`Naam_Klant`)
REFERENCES `Klant` (`Naam_Klant`)
ON DELETE set null
ON UPDATE cascade
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
 
PHP hulp

PHP hulp

16/11/2024 16:45:07
 
Ivo P

Ivo P

11/03/2015 12:27:55
Anchor link
verbaast me meer dat je geen foutmelding krijgt op

Naam_Klant VARCHAR(45) NULL AUTO_INCREMENT

hoe wil je precies gaan nummeren in een tekst veld?

Wat als je het type kolom verandert naar INTEGER(11)? (ook in die andere tabel)

NB:
het werkt heeeeel veel fijner als je kolomnamen niet volstopt met underscores en hoofdletters.
Want was het nu StraatNaam of Straat_Naam of Straatnaam?

Gewoon alles klein: straatnaam, en je hoeft het niet steeds te gokken.
(en een half uur te zoeken waarom "Naam_van_Schilderij" nu maar niet in je html geplaatst wordt..)

Toevoeging op 11/03/2015 12:30:17:

---
telefoonnummers zijn trouwens geen INT

dat zijn stukken tekst die toevallig (hoofdzakelijk) uit cijfers bestaan.

als je 0611 opslaat als int, krijg je bij het ophalen 611 terug.
Als je 045-1234567 opslaat, krijg je een foutmelding op het streepje.
als je buitenlandse nummers opslaat kun je tegen een overflow van het type int aanlopen

Toevoeging op 11/03/2015 12:32:05:

nog een edit:

UNIQUE INDEX Naam_en_Adres (Naam_Klant,Adres)

Naam_Klant is een nummer (integer, want auto increment)
daarmee is het ook nog eens uniek (eigenschap bij auto increment +primary key)

dus iets unieks +adres is altijd uniek....
 
- Ariën  -
Beheerder

- Ariën -

11/03/2015 14:34:03
Anchor link
Zullen we hier dan maar verder gaan?
http://www.phphulp.nl/php/forum/topic/ik-kom-er-niet-uit-wat-doe-ik-hier-fout/97431/last/

Deze doe ik voor de overzichtelijkheid maar dicht.
 
 

Dit topic is gesloten.



Overzicht

 
 

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.