Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Relacje - problem
requinus
post 12.04.2007, 08:42:26
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.04.2007

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


Witam, na wstępie muszę zaznaczyć że jestem tu nowy biggrin.gif
Mój problem polega na tym, że gdy tworzę dwie tabele wraz z relacją jeden do wielu to jakoś nie widzę efektu działania tejże relacji. Przejdźmy do konkretów. Oto przykładowe tabele, które tworzę w bazie:
  1. CREATE TABLE adres (
  2. id_adres INT NOT NULL AUTO_INCREMENT,
  3. ulica VARCHAR (25) NOT NULL,
  4. kod_pocztowy VARCHAR (6) NOT NULL,
  5. miejscowosc VARCHAR (25) NOT NULL,
  6. PRIMARY KEY (id_adres)
  7. );
  8.  
  9. CREATE TABLE pracownik (
  10. id_pracownik INT NOT NULL AUTO_INCREMENT,
  11. imie VARCHAR (15) NOT NULL,
  12. nazwisko VARCHAR (20) NOT NULL,
  13. id_adres INT NOT NULL,
  14. PRIMARY KEY (id_pracownik),
  15. CONSTRAINT FK_adres2 FOREIGN KEY (id_adres) REFERENCES adres (id_adres)
  16. );


Nie wiem czy dobrze rozumiem ideę relacji tych dwóch tabel (wyprowadźcie mnie ewentualnie z błędu), ale wydaje mi się, że nie powinno się dać dodać rekordu do tabeli 'pracownik' jeśli zawierał będzie identyfikator 'id_adres', którego nie ma w tabeli 'adres'.
A tutaj niestety daje się dodać taki rekord.
Podpowiedzcie ja zrobić, żeby nie dało się dodać takiego rekordu no i aby dane kaskadowo usuwały się i aktualizowały.
Moja wersja serwera to: 4.0.24_Debian-10sarge2-log

Pozdrawiam i z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post 12.04.2007, 09:18:50
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


1.
Bo tworzy ci tabele typu MyISAM, dopiero InnoDB posiadaja wiezy integralnosci

  1. CREATE TABLE ...
  2.  
  3. ) engine = Innodb ;

i po problemie.


2.
http://dev.mysql.com/doc/refman/5.0/en/inn...onstraints.html
ON UPDATE ... , ON CREATE...


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 18:59