[ batagope85 @ 21.01.2013. 18:50 ] @
Pošto je na redu došao ispit "Baze podataka", rekoh da pokušam samostalno (tj. uz vašu pomoć ) da kreiram bazu za web sajt sa vestima.

Zadatak je sledeći: (pokušao sam da odredim najbitnije stvari, ako neko smatra da se zadatak može proširiti, neka slobodno napiše )

1. Postoje tri vrste korisnika:
a) čitalac (koji samo čita vesti sa sajta. Da bi dodao komentar mora se registrovati (registracija nije obavezna ako želi samo da čita vesti))
b) autor članka (koji piše nove članke, ali takođe može da čita vesti, edituje postojeće članke, i briše postojeće članke. Za autora je obavezna registracija.)
c) administrator (koji može da dodaje, edituje i briše komentare, članke i autore).

2. Razmatrajući problem došao sam do sledećih entiteta: (povezivanje ću odraditi kasnije)
a) Korisnik (id_korisnika, ime, prezime, nadimak, šifra, email, status (enum aktivan ili neaktivan), datum_registracije, datum_aktivacije)
b) Članak (id_članka, tagovi, opis, naziv, tekst_clanka, status (enum nacrt ili za objavljivanje), url_slike, url_videa, datum_objavljivanja_clanka)
c) Komentar (id_komentara, tekst_komentara, datum_objavljivanja)
d) Kategorija (id_kategorije, ime_kategorije, id_roditelja)

Potrebno je nacrtati EER (PMOV) dijagram i prevesti ga u relacioni model.

NAPOMENA:
Postoje dve stvari koje me zbunjuju u vezi sa zadatkom a tiče se entita Korisnik i entiteta Kategorija.
Naime, koliko sam ja shvatio entitet korisnik se može specijalizovati na tri podentiteta: Čitalac, Autor, i Admin. Ono što mi nije jasno je povezivanje ovih entiteta ponaosob sa ostalim entitetima.
Što se tiće entiteta Kategorija, zbunjuje me činjenica da pokazuje sam na sebe. Pošto postoji jedan nivo podkategorija (tj. Kategorija može imati decu, koja dalje ne mogu biti roditelji i imati decu), možda je bolje kreiranje entiteta Podkategorija.

U nadi da ćete mi pomoći, unapred hvala.

MOJE REŠENJE:

U PMOV dijagramu neću koristiti atribute, kako bi uštedeo prostor. U relacionom modelu ću ih ubaciti.




Sada mi nije jasno kako da povezem podentitete Citalac, Autor, Admin sa ostalim entitetima. Kada bih koristio entitet Korisnik, uradio bih to na sledeći način. Međutim kada želim da koristim entitete Citalac, Autor, Admin, ne znam kako da kreiram entitet Admin, a pitanje je da li su i ostala dva entiteta dobro urađena.




Evo kako izgleda PMOV kada sam povezao sve entitete.



[Ovu poruku je menjao batagope85 dana 21.01.2013. u 20:35 GMT+1]
[ Getsbi @ 21.01.2013. 20:48 ] @
Specijalizovani entiteti se ne vezuju direktno za ostale entitete, već preko generalizovanog entiteta Korisnik. Na ovom nivou možeš slobodno za vezu korisnika sa drugim entitetima da staviš (čita, piše i uređuje). Kasnije, za PK Korisnik koristiš KorisnikID. Specijalizanti dobijaju uloge (rolname) i PK će migrirati, te će im primarni ključevi biti: CitalacID (FK), AutorID (FK) i AdministratorID (FK). Veze ovih specijalizanata sa entitetom Korisnik će biti 1:1. Njihova stvarna prava (čitanja, pisanja, brisanja...) ćeš razrešiti tek na aplikativnom nivou. Zajedničke atribute držiš u entitetu Korisnik: PrezimeIme, DatumRodjenja....... Posebni atribut za čitaoca može biti BrojPristupa, BrojKomentara, za autora BrojUredjivanihClanaka, a za Administratora, recimo BrojBanovanihKorisnika. Tako ćeš imati statistiku oko restriktivnosti administratora.
[ batagope85 @ 21.01.2013. 20:50 ] @
Evo i relacionog modela.




Ako neko ko se razume, može da pregleda ove dijagrame, i da da svoje komentare, i ispravke, bio bih mu večno zahvalan.