Cześć. Jak tworzycie bazy danych z tabelami ze sobą jakoś powiązanymi(baza ma być obsługiwana przez program), to czy stosujecie klucze obce?
wiesz do czego są klucze obce w ogóle??
a jak sobie odpowiesz twierdząco na to pytanie to się zastanów nad tym jak durnie brzmi to, które zadałeś, a jak nie potrafisz odpowiedzieć twierdząco to najwyższy czas poczytać jakąś teorię o bazach
PS. jestem ciekaw, który twardziel zaznaczył nie oraz bardzo rzadko - pewnie ci, co z bazami mają styczność instalując kolejne forum na darmowym serwerze...
BTW żeby nie było, że wredny jestem to Twoje pytanie mozna porównać do pytania w stylu "czy stosujesz przy pisaniu programów pętle for" w domyśle mając coś w stylu
writeln(1);
writeln(2);
writeln(3);
writeln(4);
writeln(5);
writeln(6);
writeln(7);
writeln(8);
writeln(9);
writeln(10);
zamiast
for i := 1 to 10 do writeln(i);
Klucze obce... nie służą przypadkiem do otwierania mieszkań co ładniejszych koleżanek? :)
Jeżeli używam systemu, w którym kluczy obcych nie ma, to używać ich nie mogę, więc nie używam...
To pytanie wynika z tego, że najułomniejsza baza danych, MySQL w wersji przed 5.0 oraz silnikiem MyISAM, jest zarazem najpopularniejsza :/
Pomijając ten szybki parser tekstu [bo do bazy danych to mu daleeeeko], to każdy inny szanujący się system, który śmie nazywać się relacyjną bazą danych obsługuje klucze obce, które są podstawą relacji. Więc jak ktoś tworzy w takim systemie bazy bez relacji to powinien zmienić branżę w te pędy - bo to blamaż...
Może się trochę wytłumaczę.
Skoro piszę aplikację, która ma działać na bazie(której strukture sam zrobiłem), to wiem, że przy usuwaniu jakiegoś rekordu, muszę jeszcze usunąć to, to i to. I tak samo z dodawaniem. Jakoś mi tak łatwiej, bo mam wrażenie, że mam większą kontrolę nad bazą przez program.
Druga sprawa jest taka, że np. nie usuwam w ogóle fizycznie danych, tylko w każdej tabeli(z której mogę coś "usunąć" przez program) mam pole DELETED, które mówi o tym, czy rekord "usunięto", czy nie
Relacje istnieją po to, by trzymać integralność danych w bazie.
Pomagają też przetwarzać dane kaskadowo w razie potrzeby.
To, jak Ty macasz bazę w programie to jedna sprawa, ale jeśli silnk bazy danych obsługuje relacje, powinno się ich używać. Taka moja opinia [w końcu bazy to niby moja specjalizacja :D]