Witam,
zaczynam zabawę w relacje w bazie mysql i proszę o pomoc już na starcie .
Przykładowo mam dwie tabele :
- users
- reservations
W tabeli "reservations" będę zapisywał id zalogowanego usera , w kolumnie user_id , które to nastepnie rezerwację będę wyswietlał na stronie konta zalogowanego usera. Czyli najprostszy z możliwych przykład klucza głównego ( id) i klucza obcego ( user_id ).
Teraz uwaga!!! Będę pisał straszne głupoty, ale jak dostanę odpowiedź to może tak głupie pytania juz sie wiecej nie pojawią.
Pytania :
1. czy musze określić (stworzyć ) relację między tymi tabelami ( kluczami) przy użyciu zapytania ALTER TABLE... i w tym zapytaniu określic co będzie kluczem głównym , a co obcym .
A może relacja może być wirtualna , i będę o niej wiedział tylko ja , silnik mysql już nie ? No bo i bez tego mogę przecież pobrać dane z obu tabel z uzyciem JOIN ? .
Czy jest to obowiązkowe i jaki będą korzysci z tego że silnik mysql będzie wiedział jakie co z czym ma relacje.
2. Załóżmy ze pisze moduł ( wtyczkę , np. do wordpressa) i tabela będzie tworzona dynamicznie , np . taka :
CREATE TABLE `wizyta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`visit_date` datetime NOT NULL,
`doctor_name` varchar(255) COLLATE utf8mb4_polish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_polish_ci
i będę chciał żeby 'user_id' było kluczem obcym dla kolumny 'id' w tabeli wordpressowskiej wp_users .
Pytanie brzmi czy muszę w tym zapytaniu określić relację , jak to zrobić poprawnie i w ogóle czy dobrze kombinuje.
Będę bardzo wdzięczny gdyby ktoś mi to raz a dobrze zobrazował .
dzięki z góry