Disseny de la base de dades
Per tal de gestionar correctament totes les dades del procés d’inscripció i el desenvolupament dels jocs, hem dissenyat una base de dades formada per diverses taules. Cada taula té una funció específica i totes juntes permeten emmagatzemar la informació dels assistents, els jocs disponibles i els resultats obtinguts per cada participant.
Taula d’assistents
Aquesta taula guarda totes les dades personals que l’usuari introdueix en el formulari de registre: nom, cognoms, nom d’usuari, correu electrònic, telèfon, document identificatiu, dies d’assistència i possibles intoleràncies.
CREATE TABLE IF NOT EXISTS assistents (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nom TEXT NOT NULL,
cognoms TEXT NOT NULL,
nom_usuari TEXT NOT NULL,
correu_electronic TEXT NOT NULL,
telefon TEXT NOT NULL,
dni_nie TEXT NOT NULL,
dies_assistencia TEXT NOT NULL,
intolerancies TEXT
);
Taula de jocs
Aquesta taula conté la informació de cada joc o activitat disponible durant l’esdeveniment.
Permet identificar cada joc i descriure’l breument.
CREATE TABLE IF NOT EXISTS jocs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nom TEXT NOT NULL,
descripcio TEXT
);
Taula resultats
Aquesta taula relaciona cada assistent amb cada joc i guarda la puntuació o resultat que ha obtingut.
És una taula clau perquè permet registrar múltiples resultats per participant i múltiples participants per joc.
CREATE TABLE IF NOT EXISTS resultats (
id INTEGER PRIMARY KEY AUTOINCREMENT,
id_assistent INTEGER NOT NULL,
id_joc INTEGER NOT NULL,
puntuacio INTEGER NOT NULL,
FOREIGN KEY (id_assistent) REFERENCES assistents(id),
FOREIGN KEY (id_joc) REFERENCES jocs(id)
);
Justificació del disseny
Amb aquesta estructura:
- Evitem duplicar informació.
- Podem consultar fàcilment quins jocs ha jugat cada assistent.
- Podem obtenir els resultats de cada joc i comparar puntuacions.
- El model segueix els principis de normalització d’una base de dades relacional.
