![]() |
![]() |
![]()
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
![]() 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:
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 12.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Może zróbmy inaczej...
Napiszcie mi proszę kod, który doda mi do bazy dwie tabele spięte relacją jeden do wielu. Ja spróbuję to "wkeić" i zobaczymy czy zadziała (ew. podam kod błędu). Próbowałem już różnych kombinacji, które nie działały i już się w tym trochę zagubiłem. Powiedzmy niech to będzie tabela 'tematy' i tabela 'posty' (takie mini forum ![]() Czyli tak, żeby nie dało się dodać 'posta' jeśli wpiszemy w polu Idtematu wartość, która nie istnieje w tabeli tematy. Mam nadzieję, że wiecie o co mi chodzi. No i oczywiście jeśli usunę temat, to żeby usunęły się posty z tego tematu. Zrobiłem tak jak mówiliście, stworzyłem tabele Innodb bez FOREIGN KEYa. Dało radę. Ale kiedy piszę:
to wyskakuje
Co robię nie tak? Pomóżcie proszę. P.S. Niech zostanie jeden adres dla wielu pracowników. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 16:00 |