Database schema - Giotto-maker/SWLASSI GitHub Wiki

Schema DB (modello ER)

Le entità principali presenti all’interno della nostra applicazione sono User, Artwork e Review. La tabella Users è di base caratterizzata dai campi nome, cognome, categoria (necessaria per suggerimenti personalizzati di opere), username, email, password, campo roles_mask (necessario per poter distinguere gli utenti in amministratori, artlover e utenti base) e reviews_number (necessario per poter tener traccia del numero di recensioni fatte da ogni utente). A questi campi si aggiungono poi tutti quelli necessari per l’implementazione di funzionalità come remember me, reset password, session, utilizzo di omiauth (es. campo provider).

| User_id | Name | Surname | Category | Username | Email | Password | roles_mask | reviews_number

La risorsa Artwork è cosi strutturata:

| Artwork_id | Voto | Valutazioni | Periodo | Nome | Indirizzo | Foto1 | Foto2 | Foto3 | Foto4 | Foto5 | Autore | Dimensioni | Categoria | Latitudine | Longitudine |

Il campo Voto e Valutazioni vengono aggiornati ogni qual volta l'opera in esame viene valutta. In particola modo in campo Voto riporta la media dei voti che l'Artwork ha ricevuto, il campo Valutazioni invece riporta il numero di Valutazioni totali.

La tabella Reviews è implementata per poter consentire agli utenti registrati di poter lasciare, oltre ad un voto (da 1 a 5) anche un commento testuale inerente ad un Artwork visitata. Questa è caratterizzata dai campi:

| Valutation | Comment | User_id | Artwork_id |

A queste tre risorse si aggiungono le tabelle Itineraries, Lover_creations e Admin_creations. La prima tabella è stata implementata per poter tener traccia delle opere che un utente visita. Tra i suoi campi sono infatti presenti le sette opere d'arte suggerite dall'App e l'id dell'utente al quale viene fornito il suggerimento. La tabelle Lover_creations e Admin_creations permette invece di tener memoria delle opere rispettivamente aggiunte di volta in volta da un artlover e da un admin. Tra i campi sono infatti presenti l'id dell'opera aggiunta e l'id dell'utente che si è occupato dell'inserimento dell'Artwork.

Modello ER: https://drive.google.com/drive/u/1/folders/1vhs43trWah1FtvotbcyJbWgc1MRAy7Pi