«« ( Date ) »» // «« ( Thread ) »» // ri5sab - 2007

Dilema oko realizacije domaćeg

by Nemanja Simovic
ponedeljak, 01. oktobar 2007 - 22:49.

Imam dilemu oko domaceg za neparan broj indeksa - PRODAVNICA DELOVA.
Da li praviti dve tabele (RAČUN_FIRMA, RAČUN_OSOBA), ili samo jednu (RAČUN)?

Varijanta 1
===========
Ako bi pravio 2 tabele onda mi se lepo uklapa u redosled zadatka, tj PREDRACUN bi bio jak objekat, a STAVKA_FIRMA, RACUN_FIRMA i UPLATA_FIRMA slabi:

FIRMA =>
PREDRACUN => {
STAVKA_FIRMA,
RACUN_FIRMA =>
UPLATA_FIRMA
}
OSOBA =>
RACUN_OSOBA => {
STAVKA_OSOBA,
UPLATA_OSOBA
}

Ovakvo resenje mi se cini glomazno i lose. Treba posebno za firme i osobe praviti sve, onda cemu specijalizacija?

Varijanta 2
===========
Ako bi se pravila jedna tabela RACUN, STAVKA, UPLATA

KOMITENT =>
PREDRACUN => {
STAVKA,
RACUN,
UPLATA
}

Ovako ne mogu da se izdaju racuni za osobe, jer se njima ne izdaje predracun. Relaciju UPLATA namerno nisam stavio da zavisi od RACUN, nego od PREDRACUN, jer se u zadatku kaze "Jedna uplata firme moze da se odnosi samo na jedna predracun."

Varijanta 3
===========
Ako bi RACUN bio jak objekat, onda bi morao da sadrzi neki parametar koji odredjuje da li je racun placen, ili mozda, da taj parametar bude ne/postojanje uplate za taj racun.

KOMITENT =>
RACUN => {
PREDRACUN,
STAVKA,
UPLATA
}

Ovako bi u tabelu RACUN nakon sto se plati trebalo upisati broj sa predracuna. Posto se u zadatku trazi da se izda racun, nakon uplate, sa istim brojem predracuna. Ako neka firma ne plati racun, broj tog predracuna bice zarobljen.

Ova treca varijanta mi se cini najlogicnija. Interesuje me da li neko zna kakv je obicaj (dobra praksa) da se radi kod ovakvih problema?