mam jeszcze parę pytań co do bazy, otóż wzorując się na powyższym przykładzie w moim przypadku byłoby tak:
klienci(id,imie,nazwisko,adres);
kamery(id,marka,model,nr_ser);
zgloszenia(id, data_przyjecia, data_wykonania, opis_usterki, klient_id, kamera_id);
pól jest oczywiście trochę więcej, ale nie będę wszystkiego pisał.
Korzystając z CodeIgnitera, napisze do każdej tabeli osobny model, etc.
Dodawanie wpisów wygląda tak:
INSERT INTO `klienci` (`imie`,`nazwisko`,`adres`) VALUES
('Jan','Kowalski','Głucha 23'), //id=1
('Adam','Nowak','Ślepa 54'), //id=2
('Krystyna','Nowak','Kulawa 91'); //id=3
INSERT INTO `kamery` (`marka`,`model`,`nr_ser`) VALUES
('Panasonic','LT-2312','3298239'), //id=1
('Sony','NX-4323','329128329'), //id=2
('Olympus','ST-3291','329128493'); //id=3
INSERT INTO `zgloszenia` (`data_przyjecia`,`data_wykonania`,`opis_usterki`,`klient_id`,`kamera_id`) VALUES
('2011-01-23','2011-02-01','uszkodzona matryca', 1,1), //id=1
('2011-01-31','2011-02-03','uszkodzony wyświetlacz',2,2), //id=2
('2011-02-14','2011-02-19','kamera się nie włancza',3,3); //id=3
w powyższym kodzie widać, że klienta o id=1 dotyczy kamera o id=1 i zgloszenie o id=1, i tak będzie zawsze, bo każde nowe zgłoszenie dodaje nowego klienta, kamerę i ogólnie zgłoszenie.
I teraz pytanie, czy to jest dobrze rozwiązane ? nie lepiej by było, gdybym np w klienci i kamery jako id (będące kluczem głównym) przemianował je na klucz obcy do zgłoszenia ? tzn:
klienci(zgloszenie_id, // FK
imie,nazwisko,adres);
kamery(zgloszenie_id, // FK
marka,model,nr_ser);
zgloszenia(id, // PK
data_przyjecia, data_wykonania, opis_usterki, klient_id, kamera_id);
proszę o radę, pozdrawiam