Herhalingsoefeningen III
Herhalingsoefeningen III
Hieronder vind je een grote oefening die als herhaling dient van de volledige cursus relationeel datamodelleren. Deze opgave is aanzienlijk groter dan wat er op het examen gevraagd zal worden.
Je wordt gevraagd om een datamodel te ontwikkelen voor een nieuw anoniem sociaal netwerk.
Gebruikers
Gebruikers kunnen een account aanmaken en deze eventueel verifiƫren met een e-mailadres of telefoonnummer. Gebruikers hebben eventueel een premium account, de betaling verloopt via een externe service en enkel de start- en vervaldatum worden bijgehouden in het datamodel. Verder kunnen gebruikers een beschrijving en avatar aan hun account toevoegen en kunnen de gebruikers persoonlijke berichten sturen naar andere gebruikers. Dit zijn geen groepsgesprekken, een bericht is steeds tussen twee verschillende gebruikers.
Gebruikers kunnen hun account verwijderen, in dat geval worden al hun posts geanonimiseerd en worden hun persoonlijke gegevens verwijderd. De account blijft echter in het systeem zitten.
Badges
Voor bepaalde acties op de website worden automatisch badges toegevoegd aan een gebruikersaccount. Deze badges bestaan uit een afbeelding, een naam en een beschrijving van de omstandigheden waarin deze badge toegekend wordt. Zo krijgt een gebruiker bijvoorbeeld een badge voor elk jaar dat hij/zij lid is van het sociaal netwerk.
Deze badges worden aangemaakt en beheerd door de administrators van het sociaal netwerk. Deze kunnen op eender welk moment beslissen om een badge te verwijderen zonder dat de gebruikers hiervan op de hoogte moeten zijn.
Groepen
Het netwerk wordt opgedeeld in een verschillende paginaās/groepen waar gebruikers met gemeenschappelijke interesses discussies kunnen starten en interessante links of media kunnen posten.
De groepen hebben ƩƩn of meer beheerders, deze beheerders stellen regels op voor hun groepen en hebben de mogelijkheid om commentaren, posts of zelfs de volledige groep te verwijderen. De regels maken deel uit van de beschrijving van de groep en je kan er vanuit gaan dat de regels uniek zijn per groep. De algemene regels zitten namelijk vervat in de ToS van de website. Eventueel kunnen de beheerders ook een eigen CSS-bestand toevoegen om de lay-out van hun groep aan te passen.
De verwijderde posts, commentaren en groepen moeten een tijdje in het systeem bewaard blijven omwille van dataretentie wetgeving. Na een wettelijk vastgelegde duur mogen deze dan definitief verwijderd worden.
Gebruikers kunnen zich op ƩƩn of meerdere van deze groepen abonneren en er kan op basis van deze informatie een persoonlijk overzicht van nieuwe posts genereert worden.
Tags
Gebruikers hebben per groep de mogelijkheid om ƩƩn of meerdere tags bij hun gebruiksnaam te plaatsen. In een groep waar gebruikers hulp kunnen vragen met programmeerproblemen kan zoān tag bijvoorbeeld aangeven hoe behulpzaam een gebruiker is. Sommige van deze tags kunnen de gebruikers zelf toevoegen, andere moeten toegekend worden door de beheerders van de groep. Deze laatste soort tags worden enkel toegekend als een gebruiker aan bepaalde voorwaarden voldoet. Daarbovenop kan een beheerder gebruikers verbieden om persoonlijke tags toe te voegen.
Het is mogelijk dat verschillende gebruikers hetzelfde tag gebruiken. Daarom wordt de database doorzocht terwijl de gebruiker de naam van zijn tag aan het ingeven is en worden suggesties aangeboden. Tijdens het zoeken worden enkel tags gesuggereerd die al eens gebruikt zijn in de groep. Verschillende groepen kunnen eenzelfde tag gebruiken dat in andere situaties toegevoegd wordt aan een abonnee.
Beheerders kunnen tags verwijderen binnen de groepen die zij beheren, als een tag verwijderd wordt, zullen alle gebruikers die dit tag bezitten dit verliezen.
Posts
Voor elke post moet de gebruiker die de post aangemaakt heeft en de datum waarop dit gebeurd is, bijgehouden worden.
Like/dislike
Gebruikers kunnen hun appreciatie voor een bepaalde post weergeven door de post te liken of disliken. Een gebruiker mag eenzelfde post slechts ƩƩn keer liken of disliken. De gebruiker kan een like veranderen naar een dislike en omgekeerd. Het is ook mogelijk om een bestaande like of dislike te annuleren als dit een vergissing was.
Het aantal likes/dislikes wordt gebruikt om te bepalen welke posts op een bepaald moment het meest populair zijn.
Awards
Naast likes/dislikes kunnen gebruikers ook awards geven aan posts die ze echt appreciƫren. Deze awards worden niet meegenomen in het bepalen van de populariteit van een bepaalde post. Een award bestaat uit een afbeelding en een naam.
De awards zijn niet altijd gratis, indien de awards geld kosten wordt ook de externe betalingsservice gebruikt.
Zoektermen
Tijdens het aanmaken van een post kunnen zoektermen gekoppeld worden aan deze posts zodat het eenvoudig wordt om het volledige sociaal netwerk te doorzoeken.
Post soorten
Er wordt een onderscheid gemaakt tussen posts die enkel een link bevatten naar een andere website en posts die ook tekst of media bevatten. Een gebruiker kan de inhoud van een tekst post aanpassen, de inhoud mag echter niet overschreven worden, elke wijziging moet volgens een dataretentie wetgeving een bepaalde tijd bijgehouden worden. Een gebruiker kan natuurlijk ook links verwerken in de tekst van een post, in dat geval wordt de post als een tekstpost gezien.
Gebruikers kunnen posts bewaren zodat ze deze later gemakkelijk kunnen terugvinden. Een post wordt steeds geplaatst in een groep.
Duplicatie van post
Posts kunnen op verschillende paginaās/groepen tegelijkertijd gepost worden, een post kan āgekopieerdā worden naar een andere groep. Dit gebeurt niet noodzakelijk door dezelfde gebruiker die de post origineel aangemaakt heeft.
De kopie moet aan de originele post gelinkt kunnen worden. De twee posts worden echter als 2 aparte posts beschouwd. Elke post heeft zijn eigen commentaren, awards, likes, dislikes, ā¦
Commentaar
Het is vanzelfsprekend dat gebruikers een commentaar kunnen plaatsen bij een bepaalde post, op deze commentaar kunnen dan weer andere commentaren gepost worden.
Bijna alle acties die met een post uitgevoerd kunnen worden kunnen ook op commentaren uitgevoerd worden. De enige uitzonderingen zijn dat commentaren niet gekopieerd kunnen worden naar een andere groep, dat er geen zoektermen gekoppeld kunnen worden aan commentaren en dat een commentaar niet bewaard kan worden.
Een commentaar blijft bestaan, ook al is de parent post verwijderd.
Galerijen
Een gebruiker kan afbeeldingen of videoās toevoegen aan een post. Deze media kan op verschillende locaties gehost worden. Indien een externe service gebruikt wordt, voegt de gebruiker een link toe aan de inhoud post. Indien de gebruiker de interne hosting service gebruikt, wordt er een galerij aangemaakt waar ƩƩn of meer videoās/afbeeldingen inzitten. In dit geval wordt geen HTTP link gebruikt maar wordt de galerij rechtstreeks gekoppeld aan de post. Indien een post gekopieerd wordt, zal ook de link naar de bijhorende galerij gekopieerd worden.
Een gebruiker kan een overzicht bekijken van alle afbeeldingen en videoās die hij ooit geüpload heeft en moet hiervoor niet door zijn posts gaan bladeren. Als een gebruiker verwijderd wordt, zullen ook als zijn geüploade afbeeldingen en videoās verwijderd worden. Een galerij kan verwijderd worden, ook als hier een post aan gekoppeld is. De dataretentie wetgeving vraagt opnieuw om het geüploade materiaal enkele tijd te bewaren.