Ciele
- Špecifikácia služieb pre projekt GameStudio.
Úvod
Služby musia podporovať nasledovnú funkcionalitu:
- Score - pridať skóre hráča s menom hráča a hodnotou, výpis najlepších skóre hráčov k danej hre.
- Comment - pridať komentár k hre s menom autora a textom, výpis zoznamu komentárov k hre.
- Rating - poslať hodnotenie hry s menom autora a hodnotou, zobrazenie hodnotenia hry od všetkých hráčov a priemerného hodnotenia.
Upozornenie
V rámci implementácie dodržte špecifikáciu poskytnutých rozhraní v balíku serviceSpecs.zip opísanú nižšie.
Poznámka
Zápis v špecifikácii využíva typy pre entitné triedy jazyka Java. V databáze samozrejme použite typ korešpondujúci s týmito typmi (VARCHAR, TIMESTAMP a pod.). Využite svoje znalosti z predmetu Databázové systémy.
1. Služba SCORE:
Zoznam stĺpcov pre tabuľku SCORE
:
player : TEXT
game : TEXT
points : INTEGER
playedOn: DATE
Rozhranie ScoreService.java
obsahuje nasledujúce metódy:
void addScore(Score score) throws ScoreException;
List<Score> getTopScores(String game) throws ScoreException;
void reset() throws ScoreException;
2. Služba COMMENT:
Zoznam stĺpcov pre tabuľku COMMENT
:
player : TEXT
game : TEXT
comment : TEXT
commentedOn: DATE
Rozhranie CommentService.java
obsahuje nasledujúce metódy:
void addComment(Comment comment) throws CommentException;
List<Comment> getComments(String game) throws CommentException;
void reset() throws CommentException;
3. Služba RATING:
Zoznam stĺpcov pre tabuľku RATING
:
player : TEXT
game : TEXT
rating : INTEGER
ratedOn: DATE
Rozhranie RatingService.java
obsahuje nasledujúce metódy:
void setRating(Rating rating) throws RatingException;
int getAverageRating(String game) throws RatingException;
int getRating(String game, String player) throws RatingException;
void reset() throws RatingException;
Poznámka
Služba pre hodnotenie funguje podobne ako hodnotenie hviezdičkami napr. v internetových aplikačných obchodoch.
Metóda pre pridávanie hodnotenia je teda logicky odlišná od ostatných služieb: hodnotenie nepridáva , ale nastavuje (preto set ). Teda ak sa v databáze nenachádza žiadne hodnotenie daného hráča pre hodnotenú hru, bude pridané nové hodnotenie. Ak sa takéto hodnotenie už v databáze nachádza, hodnota tohto existujúceho hodnotenia bude prepísaná.
Primárnym kľúčom je teda kombinácia mena hráča a názvu hodnotenej hry.
Hodnotenie má hodnotu v rozsahu 1-5.
Zdroje
- Rozhrania služieb na stiahnutie: serviceSpecs.zip
- Dokumentácia údajových typov pre Postgresql