Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MySQL relacje insert itd.
tidnab
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.08.2004

Ostrzeżenie: (0%)
-----


Cześć wszystkim.

Mam 2 tabele:

  1. CREATE TABLE `miasta` (
  2. `id_miejscowosci` int(5) NOT NULL AUTO_INCREMENT,
  3. `miejscowosc` varchar(255) NOT NULL,
  4. PRIMARY KEY (`id_miejscowosci`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=latin2;


i

  1. CREATE TABLE `noclegi` (
  2. `id` int(9) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(255) NOT NULL ,
  4. `kategoria` varchar(255) NOT NULL,
  5. `imie` varchar(255) NOT NULL,
  6. `nazwisko` varchar(255) NOT NULL ,
  7. `ulica` varchar(255) NOT NULL,
  8. `numer` varchar(255) NOT NULL,
  9. `id_miejscowosci` int(5) NOT NULL,
  10. `kod_pocztowy` varchar(255) NOT NULL,
  11. PRIMARY KEY (`id`),
  12. KEY `id_miejscowosci` (`id_miejscowosci`)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=latin2;
  14.  
  15.  
  16. ALTER TABLE `noclegi`
  17. ADD CONSTRAINT `miasta_id_miejscowosci` FOREIGN KEY (`id_miejscowosci`) REFERENCES `miasta` (`id_miejscowosci`);



i teraz pytanie:
- Co mi daje ta relacja?
- Jeśli dodaje INSERTEM coś do tabeli noclegi to wcześniej muszę znać id_miejscowosci z tabeli miasta ?
- Czy baza nie może sama sprawdzić miasta.id_miejscowosci i dodać do noclegi.id_miejscowosci (w momencie kiedy coś do niej dodaję), a jeśli nie ma takiego id to dodać nowy rekord w miasta i dopiero wstawić to id do noclegi ? No bo chyba po to jest definiowana relacja? W innym przypadku po co ją definiować - można równie dobrze w pamięci sobie to wymyślić.

Uff trochę zamieszałem, ale mam nadzieję, że mi ktoś odpowie.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.12.2025 - 22:37