Majac dwie tabele:
CREATE TABLE `okregi` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nazwa` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=20 ;
CREATE TABLE `o_biogramy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_okregu` int(11) NOT NULL, `imie` varchar(200) NOT NULL PRIMARY KEY (`id`), KEY `biogramy_id_okregu_IND` (`id_okregu`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=5 ; -- -- Ograniczenia dla tabeli `o_biogramy` -- ALTER TABLE `o_biogramy` ADD CONSTRAINT `biogramy_id_okregu_FK` FOREIGN KEY (`id_okregu`) REFERENCES `okregi` (`id`);
Tabele o_biogramy polaczylam z tabela okregi nadajac polu id_okregu najpierw INDEX a potem FOREIGN KEY.
To znaczy ze juz utworzylam relacje miedzy tymi tabelami?
Czy pole id w tabeli okregi nie powinno sie nazywac id_okregu? tak samo jak w tabeli o_biogramy?
Chodzi mi o to ze nadajac te relacje w bazie czyli ten klucz obcy i tak dane do bazy wprowadzam w taki sam sposob jak by nie bylo tej relacji.. Czyli:
najpierw odczytuje id okregu ktore jest mi potrzebne a potem
<?php $query= "INSERT INTO o_biogramy (id, id_okregu, imie ) values (null, '$id','$imie')"; ?>
Czy nie po to sie tworzy te relacje aby nie trzeba bylo juz podawac samemu tego id_okregu do bazy o_biogramy ?
Bo jezeli nie to jaka jest roznica czy da sie ten FK czy nie skoro i tak wprowadzam i odczytuje dane z bazy w taki sam sposob?
Czy konieczne jest tworzenie kluczy obcych jezeli do tej pory radzilam dobie bez nich?