![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 29.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam chciałbym się dowiedzieć po co daję się w tabeli FOREIGN KEY w czym pomaga a w czym przeszkadza. Nie proszę tutaj o link do manuala tylko chciałbym się dowiedzieć tego od ludzi którzy jakoś to sobie już wytłumaczyli i pomogą zrozumieć te zagadnienie mnie. Dziękuję i pozdrawiam.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 4 Dołączył: 26.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
W dwóch słowach klucz obcy jest kluczem podstawowym innej tabeli. Szkolny przykład:
tabela uczniowie ma swój klucz podstawowy id_ucznia, tabela oceny ma swój klucz podstawowy id _ocena oraz id_ucznia jako kolejną kolumnę będąca kluczem obcym. Chodzi żeby połączyć w jakiś sposób dwie tabele ze sobą. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
W dwóch słowach klucz obcy jest kluczem podstawowym innej tabeli. Zazwyczaj, ale niekoniecznie. Tak jak Wilk pisze, klucze obce wiążą ze sobą (tworzy relacje) tabele w bazie danych (relacyjnej, bo takie bazy danych tworzymy w MySQL). http://www.centrumxp.pl/dotNet/299,1,06_Kl...wne_i_obce.aspx (Uwaga, artykuł o MSSQL - podstawy teoreryczne te same, szczegóły implementacji mogą być inne) Aplikacje pisane w PHP rzadko korzystają z kluczy definiowanych w samej bazie danych (przez klauzulę FOREGIN KEY), ale tą samą funkcjonalność mają zazwyczaj zapisaną w samym kodzie aplikacji. Wynika to z tego, że wciąż bardzo popularnym silnikem bazodanowym w MySQL jest MyISAM, który tej klauzuli nie obsługuje (obsługuje klauzulę REFERENCES, ale ma ona funkcję czysto dokumentacyjną). Dopiero InnoDB (inny silnik dostępny w MySQL) daje rozbudowane funkcjonalności kluczy obcych, takie jak kaskadowe uaktualnienia, czy kasowania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 20:46 |