[ zorrome @ 19.01.2009. 22:46 ] @
Radi se o slijedećem. Imam dvije tablice Zaposlenik i TipZaposlenika. Jedan zaposlenik može biti nadređen nekom drugom zaposleniku zato je i relacija tablice Zposlenik same sa sobom. Tip zaposlenika je Direktor, Knjigovođa i Slikar. Dakle, dodam zaposlenika, dodam njemu nadređenog i oni su tipa knjigovođa. Nije bitno što za nadređenog ne piše šef knjigovodstva.
Znamo da je jedan od njih nadređen svim knjigovođama. Zahtjev je slijedeći. Treba prikazati u desktop aplikaciji u tree kontroli (radi se o VB-u) sve osobe po tipu zaposlenika. Znači,
imamo Direktor i tko je od osoba direktor (marketinga, nabave i sl) s tim da znamo tko je glavni (ima ZaposlenikParentID NULL), dalje je knjigovođa i onda slikar. Pogledajte sliku ispod.

Napokon moje pitanje. Da li bi ja kao database administrator trebao dopustiti da se u tablici Zaposlenik zapiše slog koji je u biti naziv iz tablice TipZaposlenik (znači Direktor, Knjigovođa, Slikar), a koji nema ZaposlenikParentID, tj. NULL je. Programer nam tvrdi da mu to treba kako bi znao tko pripada kojem tipu zaposlenika. On bi stavio kao zapis u tablicu Zaposlenik direktor, a onda bi prvi ispod bio nadređeni, a ispod podređeni zaposlenivi. Molim vas dobre razloge za i/ili protiv i kako to argumentirati.
Hvala!

Pogledajte sliku na http://pero.yourfreehosting.net/Zaposlenik.PNG

[ savkic @ 20.01.2009. 11:22 ] @
> Napokon moje pitanje. Da li bi ja kao database administrator trebao dopustiti da se u tablici Zaposlenik zapiše slog koji je u biti naziv iz tablice
> TipZaposlenik (znači Direktor, Knjigovođa, Slikar), a koji nema ZaposlenikParentID, tj. NULL je. Programer nam tvrdi da mu to treba kako bi
> znao tko pripada kojem tipu zaposlenika. On bi stavio kao zapis u tablicu Zaposlenik direktor, a onda bi prvi ispod bio nadređeni, a ispod
> podređeni zaposlenivi. Molim vas dobre razloge za i/ili protiv i kako to argumentirati.

Po mom mišljenju takav slog je višak, sva neophodna funkcionalnost se postiže bez.
Glavni zaposleni se upisuje sa NULL ZaposlenikParentID i podešenim TipZaposlenika (BTW, nema potrebe da tu upisuješ čitav naziv, dovoljan je jedan karakter, D, K, S...), svi njegovi podređeni za ZaposlenikParentID imaju njegov ID. Kod prikaza u prvi (root) nivo se stavljaju oni sa NULL ZaposlenikParentID a prema TipZaposlenika se određuje njihova kategorija, svi ostali se dalje grupišu prema unetom ZaposlenikParentID.