Treba mi savet kako da odradim bazu podataka tj kako da povezem tabele.
Evo o cemu se radi.
Treba da napravim bazu podataka za neke uredjaje koji se salju na putovanje i da uvek imam gde se koji uredjaj nalazi i kod koga se nalazi. To je klasicni "tracker" koji prati kretanje uredjaja
Znaci od polja za tabele bih imao
Uredjaj_ID
Naziv uredjaja
Gde je uredjaj bio
Kod koga je bio
Gde se trenutno nalazi
Ko je trenutno odgovoran za uredjaj
I od polja imam jos kad se neki uredjaj prijavi za putovanje
Gde uredjaj treba da ide
Ko ce biti odgovoran za njega
I kad treba da stigne na to odredjeno mesto
E sad ja sam to rasporedio ovako
Tabela: Uredjaj
Uredjaj_ID
Naziv
Prijavljen_za_pracenje(da li je na putovanju)
Tabela: Pracenje
Pracenje_ID
Uredjaj_ID
Prethodna_lokacija
Prethodni_odgovorni
Trenutna_Lokacija
Trenutni_Odgovorni
Buduca_Lokacija
Buduci_Odgovorni
Lica_za_transfer(ko ce preneti uredjaj na odredjenu lokaciju)
Datum_prispeca
Status - pokazuje da li je uredjaj na putu ili je putovanje zavrseno(1 na putu je, 0 - putovanje je zavrseno)
Pored toga imam jos tabelu Rezervacije
Rezervacija_ID
Uredjaj_Id
Od kada je rezervisan
Do kada je rezervisan
Ko je rezervisao
Ova tabela sluzi da neko od korisnika uredjaja moze da rezervise neki uredjaj za neki sebe da treba da bude kod njega .
E sad kako radi aplikacija, ja u svakom momentu treba da vidim listu uredjaja i gde je uredjaj bio, ko je bio odgovoran i gde je trenutno uredjaj, i ko je odgovoran, i ako je uredjaj prijavljen da vidim kod koga, gde i kada treb ada stigne na prijavljenu lokaciju, i ako je rezervisan uredjaj u trenutku izlistavanja uredjaja, da to prikazem
ja sam sad upit napravio ovako
SELECT uredjaj.*, pracenje.*, count(rezervacije.Rezervacija_ID) AS reservisano FROM
uredjaj
LEFT OUTER JOIN pracenje ON (uredjaj.Uredjaj_ID = pracenje.Uredjaj_ID AND pracenje.Status = 1)
LEFT OUTER JOIN rezervacije ON (uredjaj.Uredjaj_ID = rezervacije.Uredjaj_ID and Datum_Od < NOW() AND Datum_Do > NOW())
Medjutim sad sam se totalno pogubio. I Nisam siguran da je ova struktura dobra i upit koji sam napravio.
Jer kad dodam novi uredjaj, ja ga prvo dodam u tabelu Uredjaj a onda sa dodatim Uredjaj_ID-ijem dodam i u tabelu Pracenje i postavim na status 1
E sad kad uredjaj bude prijavljen ja menjam odgovarajuce podatke u tabeli pracenje, i onda kad uredjaj stigne na zadatu lokaciju ja promenim status u 0 a dodam novi red u tabeli pracenje sa novim podacima i statusom 1.
Medjutim nesto mislim da ovo nista nije dobro. Pa bih voleo da mi neko strucan da neki pametan savet kako da ovo organizujem.
osim toga ja sam stavio za sve ove tabele da su innoDB i pravio sam veze izmedju tabela, a potrebno je da mi listanje ovih uredjaja radi sto brze, i pretraga.
Pa me interesuje da li je bolje da koristim MyIsam posto mislim da nemam nikakve potrebe za nekim transakcijama.
hvala svima unapred