[ vceklic @ 25.11.2012. 07:39 ] @
Pozdrav,

Nisam previše iskusan sa dizajnom DB, ali evo pokušavam da naučim, pa molio bih za pomoć. Kako bi bilo najbolje, ili najtačnije da se riješi problem i to proizvodi, baza proizvoda. Zamislio sam da imam tabelu proizvod koja sadrži zajedniče informacije za sve proizvode, opis, Serijski broj, BrandID, KategorijaID, itd. e sada pokušavam da napravim kategorijske tabele za specificne proizvode. konkretno Za npr. monitor mi trebaju pored standardnih stavki i veličina, tip monitora, itd. Dok za recimo mobilni telefon trebam IMEI br., zakljucan/otključan, itd.... Imate li neki prijedlog.

LP i hvala
[ Dusan Kondic @ 25.11.2012. 09:24 ] @
Pošto nisi previše iskusan evo jednog jednostavnijeg rešenja:

Sva polja stavi u tabelu "Proizvod" s tim što poljima koja su specifična samo za neku vrstu proizvoda podesiš "Allow nulls" tako da ih popunjavaš samo u slučaju kada unosiš tu vrstu proizvoda a u ostalim slučajevima upisuješ NULL.

Drugo, malo komplikovanije rešenje bi bilo da u tabeli "Proizvod" držiš polja koja su zajednička za sve proizvode, a da za svaku vrstu proizvoda imaš dodatnu tabelu u kojoj bi se nalazila polja koja su specifična samo za tu vrstu proizvoda (vertikalni nastavak tabele). Relacija između ovih tabela treba da bude jedan prema jedan, što znači da za uneseni npr. mobilni u tabeli Proizvod postoji i jedan red u tabeli ProizvodMobilni koji ima isti Id. Isto tako za uneseni monitor postoji red u tabeli ProizvodMonitor koji ima isti Id itd.
Prilikom selektovanja podataka iz ovakvih tabela moraš da JOIN-uješ ove tabele sa ... FROM Proizvod LEFT JOIN ProizvodMonitor ON Proizvod.Id = ProizvodMonitor.Id ...

Treće rešenje bi bilo da ipak sve odvojiš u posebne tabele.
Razmisli koliko imaš različitih vrsta proizvoda, koliko često planiraš da dodaješ nove vrste i slično.

Nadam se da je ovo malo pomoglo.
Pozdrav