[ vasnishonja @ 02.03.2013. 12:03 ] @
Pozdrav svima
Imam problem sa pregledoscu u radu. Baza koju sam poslao služi za praćenje materijalnih bilansa u prozvodnji hrane. Ima 3 najbitnije tabele i one su:
- OsnovnaTabelaDorada sluzi za planiranje rada (u njoj je recimo stavljeno kolika je ukupna kolicina prozvoda za preradu u odredjenoj sarzi)
-DobijeneKolicineDoradom je tabela vezana za prethodnu i u njoj se dan za danom unose konkretne kolicine sirovine koja je usla u proizvodnju i gotovh proizvoda koji su nastali kako se odvija prerada dok se ne završi šarža
-Sastavnica je tabela koja daje informaciju koje se sve komponente dobijaju od 1kg sirovine

Ono što ja trenutno imam kao problem je to što ja u tabeli OsnaovnaTabelaDorada + podtabela DobijeneKolicineDoradom ne mogu kad unosim vrednosti dnevne proizvodnje ne vidim komponente za to moram daotvaram query koji povezuje DobijeKolicineDoradom i Sastavnicu. Meni se ovaj tabelarni prikaz datasheet view najbolje dopada posto mogu da otvaram i da vidim i druge planirane prozvode.
Pitanje je dakle moze li se nekako napraviti da u samoj tabeli kad izaberem proizvod on mi odmah izbaci i sastav? Ovako bi znatno uprostio celu stvar.
[ Getsbi @ 02.03.2013. 12:26 ] @
Model ti nije dobar jer ti se ponavljaju atrubuti u entitetima. Razmisli o novim entitetima Kolicina frakcije, komponente I utrosak pojedinačnih komponenti.

Pogledaj ovde kako treba da budu uspostavljene veze jedan prema vise. A možda ti model i ostatak nečemu posluži.

18) Program za pogonsko knjigovodstvo
http://www.elitesecurity.org/t404201-0#2643384

[ Zoran.Eremija @ 02.03.2013. 20:53 ] @
Slazem se sa kolegom @Getsbi da Vam model nije dobar. Moze se reci skolski primer kako ne valja. Buduci da ste u svom profilu naveli da ste "tehnolog" onda sigurno znate sta je tehnoloski postupak u procesu proizvodnje nekog proizvoda i verovatno znate da jedan proizvod moze imati vise tehnoloskih postupaka. Iz vase baze iz priloga vide se i elementi tehnoloskog mesta ili lokacije linije...

Prilozicu Vam primer modela koji moze da Vam posluzi kao osnova za dalje.

[ Zidar @ 04.03.2013. 22:01 ] @
Milose, nemoj da se obeshrabris. Sastavnice su mozda najteza klasa problema za resavanje u relacionim bazama. Nisu laksi za resavanje ni u ne-relacionim bazama :-)

Ono sto si napravio, ne valja pre svega zato sto se tesko prati sta se desava i greske se lako prave. Uz nesto truda, uspeo sam ovo da vidim iz tvoje sastavnice:


Vidimo 7 gotovih proizvoda i njihove komponente. Prvi proizvod, 10162, ima dva komponente, od kojih je jedna sam proizvod. Tesko da ovo valja? Drugi i treci, 40008 i 40000, imaju iste komponente, to je OK, verovatno u drugim razmerama.Treci proizvod, 10105 ponovo je sam sebi komponenta. Treci i cetvrti imaju iste komponente, verovatno razlicite razmere, a poslednij, 101523, je sam sebi jednina komponenta. Ovde nesto ne valja. Ne verujem da si bas toliko izgresio, pre ce biti da u sastavnicu upisujes faze u preredi jedne iste komponente.To nije dobro, sastavnica znaci "sta ulazi u gotov proizvod" a faze u preradi iste komponente se predstavljaju dugacije.

Da se pozabavimo sastavnicama. Da bi cuvao u bazi sastavnicu, trebaju ti dve tabele:
1) spisak svih komponenti, polugotovih proizvoda i gotovih proizvoda, sve u jednoj tabeli. To cini mi se imas - tvoja tabela SIfranik.
2) sama sastavnica, tabela koja ima cetiri kolone (Komponenta, Proizvod, jedinicaMere, Kolicina) gde Proizvod sadrzi Komponente. Imamo uslove UNIQUE (Komponenta, Proizvod) i CHECK Komponenta<> Proizvod

Ako i napravis takvu tabelu, osta je problem da se pisu kveriji koji izvlace podatke iz sastavnice. Recimo, proizvod 40008 se sastoji od komponenti (10048, 40000C i 40000B) AKo hocemo 200 kg proizvoda 40008 koliko nam treba svake komponente? Tesko pitanje, s obzirom da se 40000C sastoji od 40000B i 40000D. U stvari, nemoguce je napisati kveri koji ce dati odgovor na ovo pitanje. Mora da se programira. Mora da se sastavnica zamisli kao drvo, gde je gotov proizvod u korenu, a grane su komponete, koje opet mogu da imaju svoje grane i tako dalje, neogranicen broj nivoa. Evo primer iz tvoje tabele:


Pravilna tabela 'sSastavnica' izgledala bi otprilike ovako:


apopunjavamo je ovako:


To je tek pocetak. Potrebno je da postavimo jos neka ogranicenja, da ne bismo aksnije imali problema. Satavnica mora d apredstavlja drvo, a ne strukturu sa zatvorenim konturama- petljama. O tom malo kasnije. Za pocetak, pokusaj da na ovaj nacin predstavis sastavnicu.





[ captPicard @ 05.03.2013. 12:42 ] @
Nisam siguran da li sam dobro shvatio zadatak, ali zar ne bi bilo bolje da imamo 3 tablice:

Code:
Komponente
------------
Sifra_komponente PK
Naziv

Proizvodi
------------
Sifra_proizvoda PK
Naziv

Sastavnice
------------
Sifra_proizvoda     PK
Sifra_komponente  PK
Kolicina


Na taj način razdvajamo gotove proizvode od komponenti. Ujedno nam je lakše dati npr pregled svih gotovih proizvoda. Ili sam krivo shvatio zadatak? :)
[ Getsbi @ 05.03.2013. 13:39 ] @
@ captPicard
U prehrani je tako kako kažeš, jer nema poluproizvoda. U mašinstvu su mogući polufabrikati koji služe za sklapanje. I oni se računaju u proizvodnji. Na zalihama ima ovoliko gotovih proizvoda i toliko polufabrikata. U ovom drugom slučaju je moguć model kako ga je Zidar posatvio. Proizvodi i repromaterjal su u istoj tabeli.
[ captPicard @ 05.03.2013. 13:51 ] @
Aha, onda sam krivo shvatio :) Ispričavam se na pomutnji :)
[ vasnishonja @ 06.03.2013. 00:05 ] @
Pre svega hvala svima koji su nasli vremena da kazu koju.
Prikazana slika u odgovoru Zoran.Eremija mi je isuvise slozena za ono sto meni treba.
Vidim da su Zidar i captPicardi misljenja da sastavnica treba da bude prakticno sa 3 kolone: nazivproizvoda / komponenta / ucescekomponente u proizvodu.
Ovako bih mogao da imam br komponenti bas koliko ih proizvod stvarno ima, takodje kod slozenih proizvoda br komponenti je neogranicen.
Problem je moje neiskustvo u accessu ja sam kod postavljanja baze rekao: ok, proizvodi nece imati vise od 5 komponenti.
Pa mi je sastavnica: nazivproizvoda / komponenta1 / ucescekomponente1/ komponenta2 / ucescekomponente2 / komponenta3 / ucescekomponente3 .... onda kod velikog broja proizvoda imam prazna polja posto je broj komponenti uglavnom do 3. Ali meni je ovako bilo lakse posto imam query gde kad odaberem odredjen proizvod i kolicinu dobijam spisak komponenti i proracunate utroske po sastavnici. Ovo ne bih umeo da napravim da je sastavnica drugacija.
Naravno posto su mi komponente sad razbacane u vise kolona to mi predstavlja problem kad hocu da napravim sumiranje utrosaka itd.

Takodje bila je prica o poluproizvodu, mislim da i u proizvodnji hrane on treba da postoji da bude prostije mi proizvodimo pakovanu pecenu robu. Sam proces je takav da se na prvoj masini roba ispece i onda se proknjizi osnovnasirovina+so+brasno+aroma daje poluproizvod u sledecem koraku poluproizvod se pakuje odnosno vezuje sa razlicitim ambalazama i dobijamo razlicite gotove proizvode(pakovanje od 250g, 500g, 3kg...).

Ja bih za pocetak da doradim postojece stanje a posto vidim da je u pitanju ozbiljan posao ne znam dali iko ima vremena i volje da mi sad pomaze da celu stvar ispravljam od pocetka. Ja bih da kad u tabeli OsnovnaTabelaDorade otvorim subdatasheet kao na slici koju sam prilozio kad odaberem odredjen proizvod mogu da dobijem i njegov sastav nazive komponenti/frakcija.



[ Getsbi @ 06.03.2013. 07:12 ] @
Zoranov model je opštijeg tipa i možda ti je malo teži za razumevanje i primenu. Mislim da je ono što sam ti ponudio na početku, nešto jednostavnije. Insistiranje na: "nazivproizvoda / komponenta1 / ucescekomponente1/ komponenta2 / ucescekomponente2 / komponenta3 /"... je kr[enje normalnih formi u relacionoj teoriji i neće ti doneti ništa dobrog, bez obzira što ti se sad čini da je lakše.
Sa linka koji sam ti dao, skini fajl Pogonsko.zip. Raspakuj ga i pogledaj struktura_kor.mdb. Videćeš kako sam ja rešio model za takav poslovni problem. Fajl Pogonsko knjigovodstvo.mdb je front-end i za početak možeš da iscrpiš neke ideje iz aplikativnog dela. Ostali su back-end različitih korisnika. Uostalom evo slike modela, pa prosudi.



Šta god da odlučiš, nemoj da započinješ bilo šta sa objektima: forme, upiti, izveštaji, moduli.....dok ne završiš model podataka. U suprotnom ćeš ponovo doći u situaciju u ojoj se trenutno nalaziš. Na forumu ima mnogo poznavaoca Access-a. Pomoći će ti svakako, samo nemoj da gubiš nadu i strpljenje.



[Ovu poruku je menjao Getsbi dana 06.03.2013. u 08:26 GMT+1]
[ Zidar @ 06.03.2013. 14:19 ] @
Milose, dobro si primetio da je problem komplikovan i kakako god da mu pridjes imaces probleme. Nacin na koji si pokusao da resis problem jeste vrlo intuitivan, ali ako sto i sam vidis, to vodi u velike probleme kasnije. Medjutim, i ono sto smo kapetan i ja predlozili nije bez problema. Tacno je da takvo resenje dozvoljava neogranicenu dubinu i slozenost sastavnice, ali je prakticno nemoguce pisati kverije za svakodnevne potrebe, tipa 'koliko se cega utrosi ako napravim X gotovih proizvoda'. Za takva pitanja neophodno je pisati kod, na neki nacin ici kroz sastavnicu i u svakom koraku dopisivati kolicine nekoj komponenti. Za utehu, to jeste razradjeno u literaturi i na taj nacin radi vecina proizvodnih sistema u svetu.

Medjutim, imas i jos jedan problem da resavas, zbog slozenosti problema koji pokusavas da resis.
Citat:

Takodje bila je prica o poluproizvodu, mislim da i u proizvodnji hrane on treba da postoji da bude prostije mi proizvodimo pakovanu pecenu robu. Sam proces je takav da se na prvoj masini roba ispece i onda se proknjizi osnovnasirovina+so+brasno+aroma daje poluproizvod u sledecem koraku poluproizvod se pakuje odnosno vezuje sa razlicitim ambalazama i dobijamo razlicite gotove proizvode(pakovanje od 250g, 500g, 3kg...).

Posmatras (verovatno moras) sastavnicu i proces proizvodnje odjednom. Za to imas ono da se jedan isti proizvod ovde sastavlja i knjizi a na sledecem koraku se pakuje. U knjigama sam video da se to resava tako sto se i ambalaza racuna kao komponenta, pa recimo u cokoladu uleze (mleko, kakao, sojin lecitin, secer, vanila) ali i (aluminijumska folija, papirrni omot)

Mislim da moras nazad na pocetak. Poslusaj Getsbija, prouci njegov sistem pa vidi sta se moze preslikati kod tebe. Verovatno ima sheme tehnoloskog postupka, nactraj ih u nekom jednostavnijem obliku, koje i mi smrtnici mozemo da razumemo. Nacrtaj i sastavnice za nekoliko proizvoda, onako kako sam ja uradio. Onda pokazi gde se u tehnoloskom procesu dodaje koja komponeta, a gde se samo nesto radi sa komponentama. Na primer,
(brasno, voda, kvasac, so secer, aditivi)=> mesanje => testo => testo stoji da se podigne => pecenje=> (ispecen hleb) => hladjenje => pakovanje =>[hleb za prodaju]
pokazuje kako komponente (brasno, voda, kvasac, so secer, aditivi) prolaze razne faze procesa - glagoli -, postaje poluproizvod (hleb) i na kraju se dobija gotov proizvod [hleb za prodaju]. To naravno treba nacrtati, pa videti kako da s eto modeluje u nekkavoj bazi.

Knjiga koja se bavi ovim problemima zove se Inside Microsoft SQL Server 20008: programming, autor Itzik Ben-Gan. Postoji verzija i za SQL 2005, koja je mozda laksa za citanje. Knjiga u nekoj od verzija verovatno ima da se skine negde na internetu kao PDF, ne znam, proveri.

IMas i ovaj link, http://access.mvps.org/access/resources/downloads.htm, stavka BOM, pogledaj jos jedan nacin kako se moze cuvati sastavnica. Ovo radi ako je sastavnica stabilna, kveriji se lako pisu, ali su promene jako teske. Ono sto smo ti mi ponudili, lako je za promene, ali tesko za kverije.

Srecno
[ vasnishonja @ 08.03.2013. 13:43 ] @
Hvala svima na pomoci, trebace mi malo vremena da se pozabavim gore navedenim pa se javljam