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.