Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Bazy danych _ [MySQL] Relacje na tabelach

Napisany przez: kosmos 8.07.2014, 20:43:57

Witam,

załóżmy że mam tabelę NOTATKA. Notatkę może dodać użytkownik systemu do takich obiektów jak MEDIA i KLIENT. Wygląda to mniej więcej tak:


NOTATKA
id_notatka
id_media
id_klient
nazwa
...


MEDIA
id_media
nazwa
...

KLIENT
id_klient
imie
nazwisko
...

Teraz załóżmy, że chcę dodać notatkę dla klienta (rekordu w tabeli KLIENT). Wówczas id_media w tabeli NOTATKA nie będzie miało powiązania z tabelą MEDIA.
Kiedy chcę wstawić taką notatkę do bazy, mam komunikat:

#1452 - Cannot add or update a child row: a foreign key constraint fails ...

Jak można to obejść? w takich sytuacjach w klucze zewnętrzne tabel z którymi nie chcę mieć powiązania mam wstawiaćnp 0?

Dziękuję za odpowiedzi.

Napisany przez: irmidjusz 8.07.2014, 20:50:00

kolumny będące kluczami obcymi muszą mieć możliwość przechowywać typ NULL

Napisany przez: kosmos 8.07.2014, 20:54:24

Czyli "ustawienia domyślne" dla kluczy obcych ustawić na NULL ?

Poszło dzięki za potwierdzenie przypuszczeń wink.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)