1. Implementació Tècnica ✅
En el meu projecte, he dissenyat una estructura de base de dades relacional utilitzant SQLite3, assegurant-me que la gestió d’identificadors sigui robusta i eficient.
- Unicitat amb Clau Primària: He configurat el camp
idde la taulaassistentscom aINTEGER PRIMARY KEY AUTOINCREMENT. Això em permet garantir que cada participant tingui un codi únic generat automàticament, evitant qualsevol duplicitat, fins i tot si esborro i afegeixo nous usuaris. - Tipus de Dada Optimitzat: He triat el tipus
INTEGERper a les claus primàries. Com que el motor de la base de dades processa números més ràpidament que cadenes de text (com l’email), les consultes de cerca i filtratge del meu panell d’administrador són molt més àgils. - Relacions i Integritat Referencial: He vinculat la taula
horarisamb la taulaassistentsmitjançant una clau estrangera (assistent_id). Per mantenir la base de dades neta, he aplicat la propietatON DELETE CASCADE. Això significa que si elimino un usuari, el sistema esborra automàticament la seva reserva d’horari, evitant que quedin dades “orfes” o inconsistents.
2. Justificació del Disseny 💡
Per a aquest repte, he pres decisions basades en l’eficiència i la privacitat:
- Per què no he usat l’Email com a Clau Primària? Tot i que l’email és únic per a cada usuari, he preferit usar un
idnumèric intern. Això permet que, si un usuari necessita modificar el seu correu electrònic per un error tipogràfic, la relació amb la seva reserva no es trenqui, ja que l’identificador numèric es manté immutable. - Control de Duplicats: He definit el camp
assistent_ida la taulahorariscom aUNIQUE. Amb aquesta restricció, el meu codi impedeix per disseny que una mateixa persona pugui reservar més d’una franja horària, garantint una organització justa de les portes obertes.
3. Documentació de les Dades 📝
He organitzat la informació en dues taules principals relacionades entre si. A continuació detallo el diagrama i la funció de cada camp clau:
Taula de referència de claus:
| Camp | Taula | Tipus de Dada | Rol | Descripció |
| id | assistents | INTEGER | Primary Key | Identificador únic de cada persona registrada. |
| id | horaris | INTEGER | Primary Key | Identificador únic de cada registre de reserva. |
| assistent_id | horaris | INTEGER | Foreign Key | Enllaç cap a l’usuari que ha fet la reserva. |
4. Reflexió del Portafolis 🧠
Durant el desenvolupament d’aquest sistema, el repte més gran ha estat gestionar la consistència de les dades. Inicialment, em preocupava que en esborrar un usuari des del panell d’administració, la seva reserva es quedés ocupant espai a la llista d’horaris.
He après que la configuració correcta de les claus primàries i estrangeres no és només una qüestió de programació, sinó de seguretat. Mitjançant l’ús de ON DELETE CASCADE, he aconseguit que la base de dades s’autogestioni, assegurant que la informació estigui sempre actualitzada i lliure d’errors de vinculació. Aquest aprenentatge em serà de gran utilitat per a projectes futurs on hagi de gestionar grans volums d’usuaris relacionats amb diferents serveis.