Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Klucze obce
Forum PHP.pl > Forum > Bazy danych > MySQL
max_mcee
utworzyłem trzy tabele:
MIASTA
  1. CREATE TABLE `miasta` (
  2. `miasto_id` int(11) NOT NULL,
  3. `wojewodztwo_id` int(3) NOT NULL,
  4. `powiat_id` int(4) NOT NULL,
  5. `miasto_nazwa` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  6. `miasto_status` int(1) NOT NULL
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

POWIATY
  1. CREATE TABLE `powiaty` (
  2. `powiat_id` int(11) NOT NULL,
  3. `powiat_nazwa` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  4. `powiat_status` int(1) NOT NULL
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

WOJEWODZTWA
  1. CREATE TABLE `wojewodztwa` (
  2. `wojewodztwo_id` int(11) NOT NULL,
  3. `wojewodztwo_nazwa` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  4. `wojewodztwo_status` int(1) NOT NULL
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


przy próbie założenia klucza obcego na tabelę POWIATY, kolumna `powiat_id`
  1. ALTER TABLE `powiaty` ADD FOREIGN KEY (`powiat_id`) REFERENCES `miasta`(`powiat_id`);

otrzymuje taki o to błąd:
#1215 - Cannot add foreign key constraint

Co może być nie tak?
nospor
Bo klucz obcy zaklada sie w tabeli, ktorej jest obce id - jak sama nazwa wskazuje.
Tak wiec pole powiat_id jest kluczem obcym w tabeli miasta.

ps: co wg ciebie robi to
int(1)
?
max_mcee
Cytat(nospor @ 18.01.2018, 09:25:43 ) *
Bo klucz obcy zaklada sie w tabeli, ktorej jest obce id - jak sama nazwa wskazuje.
Tak wiec pole powiat_id jest kluczem obcym w tabeli miasta.

ps: co wg ciebie robi to
int(1)
?


Ok, zadziałało smile.gif

Co do Twojego pytania, to ogranicza możliwość umieszczenia wartości w tym przypadku od 1-9, bo statusy które przewiduje to 1 lub 2.
To złe podejście?
viking
Może by było dobre gdyby faktycznie tak działało.
https://prophp.pl/advice/show/12/co_oznacza..._bazie_mysql%3F
max_mcee
Cytat(viking @ 18.01.2018, 09:47:40 ) *
Może by było dobre gdyby faktycznie tak działało.
https://prophp.pl/advice/show/12/co_oznacza..._bazie_mysql%3F

Ale ze mnie dzban smile.gif
Dziękuję za pomoc i życzę miłego dnia smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.