Verzija: Mi nigdje u bazi ne bilježimo konkretno količinu i vrstu ELEMENATA proizvedenih da bi se sklopio neki komad namještaja naveden u radnom nalogu. To računamo posredno, iz tabele tblSastavnica. Vremenom, nekako mi je logično za očekivati da će se sastavnica mijenjati (moja pretpostavka - "nećemo više koristiti točkiće T265 nego točkiće T547"). Ali, pored nove koja se trenutno koristi, mi moramo u bazi čuvati i sve ranije sastavnice, kako bismo bili u stanju da ispravno izračunamo vrstu i količinu proizvedenih elemenata za one proizvode koji su izrađeni na osnovu tih starih sastavnica. A čim u bazi imam različite verzije iste stvari - ja instiktivno dodajem ovo polje. U ovom slučaju je možda suvišno, pa ga slobodno izbaci. U svakom slučaju, moja zamisao izgleda ovako: napraviti formu (prozor za prikaz podataka) na kojoj će biti prikazan proizvod (njegovi osnovni podaci) i ispod spisak svih elemenata koji u taj proizvod ulaze (sastavnica). Na toj istoj formi bi bilo i dugme sa nazivom "Napravi novu sastavnicu" koje bi pravilo novu sastavnicu za taj proizvod na osnovu poslednje važeće ukoliko postoji u bazi (bukvalno bi je iskopiralo), automatski povećavalo taj broj verzije za 1 i unosilo trenutni datum u polje VaziDo (i samim tim proglasilo staru sastavnicu nevažećom). Možda je trebalo ovo pojednostaviti, pa se ograničiti na samo jednu sastavnicu po proizvodu, ne znam. Vidi sama, tvoj je seminarski.
IDZapisa u tblSkladistenje: to polje sam postavio da mi bude primarni ključ (jednoznačno identifikuje svaki zapis/torku/red u tabeli). Ovo je bila greška, možda je trebalo za primarni ključ postaviti polje IDNaloga, kako bi se osigurali da proizvodi sa jednog naloga ne mogu dva puta da se skladište. Ali, kako ćemo praviti Dostavnicu, ovo postaje nebitno.
tblRadniNalogZaglavlje -> tblRadniNalogStavke: kako sam ja shvatio, na jednom radnom nalogu može se naći više proizvoda (ispravi me ako griješim, stvarno nisam siguran). Kako nismo sigurni da li će korisnik na radni nalog da stavi 1 ili 182 stavke, moramo razdvojiti osnovne podatke radnog naloga (datum izdavanja, ko ga je sastavio i sl.) i stavke tog naloga u posebne tabele. To je veza
jedan prema više (u tblRadniNalogZaglavlje može se pojaviti samo jedan nalog sa šifrom 12/08, ali u tabeli tblRadniNalogStavke ta se šifra može ponavljati više puta, u zavisnosti od broja stavki na nalogu). Ako bismo sve stavili u jednu tabelu, morali bismo odrediti maksimalan broj stavki na jednom nalogu (dodavanjem kolona Stavka1, Stavka2, Stavka3 ..... StavkaN) - što se nikada ne preporučuje - jer ako staviš premalo korisnik će biti nezadovoljan, a ako staviš previše imaćeš nepotrebne praznine u tabeli. Nadam se da ćeš razumjeti ovo "objašnjenje".

Evo, dodao sam u prethodni primjer i jednu formu, koja će ti najbolje razjasniti zašto mora da bude ovako. Otvori formu frmRadniNalog i pogledaj.
"U tblRadniNalogStavke zašto mi se u polju ID Proizvoda javlja naziv proizvoda a ne šifra?
To je optička varka

, on u tom polju zaista čuva ID Proizvoda, ali prikazuje nazive proizvoda jer je (po mom mišljenju) korisniku mnogo lakše da zapamti naziv, nego šifru. To se može lako promijeniti ako smatraš da treba. Može on da prikazuje i naziv i šifru. Jednom ću ti ovo objasniti detaljno.
tblDostavnica je razmišljanje u pravom smjeru (usput, mnogo mi se dopada što si se uključila u rad - ne čekaš sve na gotovo kao 80% drugih), ali potrebne su joj male korekcije. Da počnemo od polja NazivProizvoda i JM. Misliš li da su ova dva polja stvarno neophodna u ovoj tabeli, budući da ih imamo i u tabeli tblProizvod (sa kojom je tblDostavnica povezana preko polja IDProizvoda, što znači da na osnovu polja IDProizvoda uvijek možemo iz tabele tblPorizvod da pročitamo naziv prizvoda i/ili jedinicu mjere)? Druga stvar se tiče priče koju sam gore ispričao: zaglavlje i stavke. Razmisli malo o razdvajanju zaglavlja dostavnice i stavki dostavnice u posebne tabele (ugledaj se na radni nalog). Još jedna stvar koju treba da riješimo je kako ćemo radni nalog prevoditi u dostavnicu gotovih proizvoda? Vidjela si da sam ja u tblRadniNalogStavke stavio i polje KolicinaRealizovana, koja treba da označi koliko je komada namještaja zaista izrađeno na osnovu tog radnog naloga. Možda da iskoristimo ovo polje, pa da ga automatski upisujemo u dostavnicu? Razmisli, a ja sam tu ako zatrebam i vrlo rado ću ti i dalje pomagati koliko mogu.
Uh, koliki post......
[Ovu poruku je menjao Scelle dana 22.03.2009. u 19:43 GMT+1]
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."
Ivo Andric