Sei sulla pagina 1di 8

Documento di analisi

Alexander Stroligo 5BI


April 2024

Contents
1 Analisi del progetto 2
1.1 Analisi di realtà . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Ipotesi aggiuntive . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Analisi delle funzionalità . . . . . . . . . . . . . . . . . . . . . . . 2

2 Progettazione contettuale 4
2.1 Entità e Relazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Regole di lettura . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Vincoli di integrità . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Progettazione Logica 5
3.1 Traduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 Script sql 7
4.1 Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1
1 Analisi del progetto
Si vuole realizzare una web community per condividere dati e commenti relativi
a eventi dalvivo di diverse categorie, ad esempio concerti, spettacoli teatrali,
balletti, ecc. che si svolgono in Italia.Gli utenti si registrano sul sito fornendo
un nickname, nome,cognome, indirizzo di e-mail. I membri registrati possono
interagire con la community visualizzando i dati degli eventi appartenenti ad
una categoria e caratterizzati da un titolo, luogo e data di svolgimento. Ad ogni
eventi sono coinvolti uno o più artisti.Gli utenti possono lasciare dei commenti
ed un voto (da 1 a 5) su un evento (opzionale possono inserire degli eventi)

1.1 Analisi di realtà


Viene proposta la realizzazione di una web community per eventi. All’interno
del problema proposto, sono identificabili diverse entità chiave:
• Evento: L’elemento centrale con il quale i membri della web community
possono interagire.
• Luogo: L’ubicazione dell’evento, identificata come entità a parte dal mo-
mento che in un luogo porebbero essere tenuti più eventi.
• Membro: Si tratta dell’utente registrato e attivo all’interno dell’applicativo
web, coinvolto nella partecipazione e nell’esplorazione degli eventi pro-
posti.
• Artista: Partecipante all’evento con relative informazioni personali.
• Commento: Rappresenta il feedback degli utenti relativamente a un
evento specifico, arricchito da un punteggio che ne riflette l’apprezzamento
complessivo.

1.2 Ipotesi aggiuntive


1.3 Analisi delle funzionalità
L’applicativo web deve prevede un insieme di funzionalità essenziali per garan-
tire un’esperienza utente completa e coinvolgente:
• Gestione dei Profili Utente: Questa componente include la registrazione,
il login e la gestione della propria area riservata. Gli utenti potranno
creare e personalizzare i propri profili, accedere alle informazioni per-
sonali e mantenere traccia delle proprie attività e preferenze all’interno
della community.
• Pagina degli Eventi: Una sezione dedicata a ciascun evento, dove gli
utenti potranno visualizzare dettagli, foto e informazioni pertinenti. Sarà
possibile esplorare gli eventi in programma, consultare il calendario e
prendere parte a quelli di interesse.

2
• Gestione dei Commenti: Gli utenti avranno la possibilità di esprimere le
proprie opinioni e condividere le proprie esperienze riguardo agli eventi
partecipati. Sarà inoltre prevista la funzionalità di valutazione tramite un
sistema di punteggi, contribuendo cosı̀ a fornire un feedback accurato e
utile per la community.

• Filtri di Ricerca Avanzati: Saranno implementati filtri di ricerca avanzati


per facilitare la scoperta degli eventi in base a criteri specifici come la
località, il tipo di evento, il punteggio ottenuto e altri parametri rilevanti.
Questo consentirà agli utenti di trovare rapidamente gli eventi più rilevanti
e interessanti per le proprie esigenze e preferenze.

3
2 Progettazione contettuale

2.1 Entità e Relazioni


Dall’analisi emergono le seguenti entità principali necessarie al funzionamento
dell’applicativo web che intendiamo sviluppare:

• Utente: Rappresenta gli utenti registrati nell’applicativo, caratterizzati da


un identificativo univoco (idUtente), nome, cognome, nickname, email e
password.
• Artista: Indica gli artisti che partecipano agli eventi, identificati da un
idArtista, nome, cognome e nome d’arte.

• Commento: Questa entità contiene i commenti degli utenti relativi agli


eventi. Ogni commento ha un identificativo univoco (idCommento), un
contenuto testuale, una data e un voto espresso dall’utente.
• Evento: Rappresenta gli eventi in programma, caratterizzati da un idE-
vento, un titolo e una data.

• Luogo: Indica i luoghi in cui si tengono gli eventi, identificati da un idLu-


ogo, un indirizzo e un CAP.
• Categoria: Le categorie associate agli eventi, identificate da un idCate-
goria e una descrizione.

2.2 Regole di lettura


Utente - Commento

4
1. Un utente può scrivere uno o più commenti.
2. Un commento può essere scritto da uno ed un solo utente.

Commento - Evento
1. Un commento è posseduto da uno ed un solo evento.
2. Un evento può possedere uno o più commenti.

Categoria - Evento
1. Una categoria può essere associata ad uno o più eventi.
2. Un evento è associato ad una ed una sola categoria.

Luogo - Evento
1. Un luogo può essere associato ad uno o più eventi.
2. Un evento è associato ad uno ed un solo luogo.

Artista - Evento
1. Un artista può partecipare ad uno o più eventi.
2. Ad un evento partecipano uno o più artisti.

2.3 Vincoli di integrità


• V1(Commenti.Voto >= 1) AND (Commenti.Voto <= 10)
CHECK ( Voto >= 1 AND Voto<= 5 )
• V2 Da definire

3 Progettazione Logica
3.1 Traduzione
Creato il modello concettuale, ne consegue il seguente modello logico di tipo
relazionale:
Leggenda: Chiave primaria - Chiave esterna - Chiave esterna e primaria

• Utente(id Utente,Nickname,Email,Pass,Nome,Cognome)
• Luogo(id Luogo,Indirizzo,Cap)
• Categoria(id Categoria,Descrizione

5
• Artista(id Artista,Nome,Cognome,Nome arte)
• Evento(id Evento,Titolo,Data ora,id Luogo,id Categoria)
• Commento(id Commento,Contenuto,Data ora,Voto,id Evento,id Utente)
• Partecipa(id Evento,id Artista)

6
4 Script sql
4.1 Script

CREATE DATABASE webceventi;


USE webceventi;

CREATE TABLE Utente(


id Utente BIGINT UNSIGNED NOT NULL AUTO INCREMENT
PRIMARY KEY,
Nickname VARCHAR(32) NOT NULL UNIQUE,
Email VARCHAR(64) NOT NULL UNIQUE,
Pass VARCHAR(64) NOT NULL,
Nome VARCHAR(32) NOT NULL,
Cognome VARCHAR(32) NOT NULL
);

CREATE TABLE Luogo(


id Luogo VARCHAR(255) NOT NULL PRIMARY KEY,
Indirizzo VARCHAR(255) NOT NULL,
CAP VARCHAR(255) NOT NULL
);

CREATE TABLE Categoria(


id Categoria VARCHAR(255) NOT NULL PRIMARY KEY,
Descrizione VARCHAR(255) NOT NULL
);

CREATE TABLE Artista(


id Artista VARCHAR(255) NOT NULL PRIMARY KEY,
Nome VARCHAR(255) NOT NULL,
Cognome VARCHAR(255) NOT NULL,
Nome arte VARCHAR(255) NOT NULL UNIQUE
);

CREATE TABLE Evento(


Id Evento VARCHAR(255) NOT NULL PRIMARY KEY,
Titolo VARCHAR(255) NOT NULL,
Data ora DATETIME NOT NULL,
id Luogo VARCHAR(255) NOT NULL,
id Categoria VARCHAR(255) NOT NULL,
FOREIGN KEY (id Luogo) REFERENCES Luogo(id Luogo),
FOREIGN KEY (id Categoria) REFERENCES Categoria(id Categoria)
);

7
CREATE TABLE Commento(
id Commento INT AUTO INCREMENT PRIMARY KEY,
Contenuto TEXT NOT NULL,
Data ora DATETIME NOT NULL,
Voto DECIMAL(8, 2) NOT NULL,
id Utente BIGINT UNSIGNED NOT NULL,
id Evento VARCHAR(255) NOT NULL,
FOREIGN KEY (id Evento) REFERENCES Evento(id Evento),
FOREIGN KEY (id Utente) REFERENCES Utente(id Utente),
CHECK ( Voto>=1 AND Voto<=5)

);

CREATE TABLE Partecipa(


id p BIGINT AUTO INCREMENT PRIMARY KEY,
id Artista VARCHAR(255) NOT NULL,
Id Evento VARCHAR(255) NOT NULL,
FOREIGN KEY (id Evento) REFERENCES Evento(id Evento),
FOREIGN KEY (id Artista) REFERENCES Artista(id Artista)
);

Potrebbero piacerti anche