@ Zidar
Odmah da bude jasno da se slažem da je u ovom slučaju primerenije koristiti polje Trajanje. Ali samo do onog momenta dok aktivnost traje nekoliko sati. Ako prilikom unosa treba da se u glavi računa koliko je sutra u 10 manje od danas u 14 i 30 onda time neću baš biti oduševljen.
Ono na čega imam primedbu, a ne mora da znači da sam u pravu je normalizacija. Mislim da bi kršenje normalizacije bilo kad bi ostavili sva tri polja PoctakPromocije, Trajanje i KrajPromocije. U tom slučaju bi bila kršena normalizacija.
2. normalna forma : “Entitet zadovoljava drugu normalnu formu ako zadovoljava prvu i ako svaki atribut koji nije ključ potpuno zavisi od primarnog ključa i ne može biti pronađen ako se zna samo deo ključa.”
3. normalna forma kaže: “Entitet zadovoljava treću normalnu formu ako svaki atribut koji nije ključ zavisi od ključa, čitavog ključa i ne služi ničemu osim ključu.” - Komentar: odnosi se na greške oko izračunatih polja.
U slučaju koji sam naveo KrajPromocije bi mogao da bude izračunat sabiranjem pocetka i trajanja i time bi normalizacija bila narušena. Prvu normalnu formu neću komentarisati jer to ovde nije sporno.
U prvobitnom primeru kada bi ostali samo atributi PocetakPromocije i KrajPromocije ne bi postojala zavisnost drugog od prvog. I dalje bi kraj određene promocije (PromocijaID) mogao da bude pronađen samo na osnovu ključa. To što ova dva atributa imaju neki ugovoreni odnos na logičkom nivou, rešava se validacijom prilikom unosa bilo na nivou tabele bilo na nivou forme za unos. U praksi ćemo naći dosta tabela kao što je sledeća (ZaposleniID,........, DatumPocetkaRadnogOdnosa, DatumZavršetkaRadnogOdnosa......). Naknadno služba zadužena za to računa: koliko godina, koliko meseci i koliko dana, te to upisuje u radnu knjižicu. Ima još ovakvih primera gde postoje neki odnosi između atributa ali ne znače i kršenje normalizacije.
Dakle , to je moje mišljenje, ostavljam mogućnost da nisam u pravu i ponavljam još jednom da je za postavljeni primer korišćenje polja Trajanje sasvim u redu.
I'll know what I want, when I see it.