Disseny de Base de Dades MySQL
Sistema de Gestió d'Assistència Tècnica i Tornejos - LAN Party Castellbisbal
Justificació: Necessitat i Relacions de Taules
El disseny de la base de dades s'ha realitzat per suportar tots els requisits del sistema de gestió d'assistència tècnica i tornejos de la LAN Party, garantint integritat, eficiència i escalabilitat.
Requisits del Projecte que Resol Cada Taula
Gestió d'usuaris, autenticació i control d'accés al sistema
Registre central de totes les sol·licituds d'assistència tècnica
Gestió del personal de suport, especialització i disponibilitat
Organització física de l'esdeveniment i localització d'incidències
Historial complet de comunicació i seguiment de cada ticket
Inventari de maquinari i gestió de recursos disponibles
Gestió de tornejos i jocs de la LAN Party, amb dates i estats
Registre de participacions i resultats dels usuaris en cada joc
Formació d'equips per a tornejos per equips (opcional)
Relació entre usuaris i equips per a tornejos col·laboratius
Esquema Conceptual de la Base de Dades
Diagrama Entitat-Relació (ER) Conceptual
Justificació de Relacions entre Taules
| Relació | Tipus | Cardinalitat | Justificació de Negoci |
|---|---|---|---|
| users → tickets | 1:N | 1 usuari → múltiples tickets | Un usuari pot crear múltiples sol·licituds |
| technicians → tickets | 1:N | 1 tècnic → múltiples tickets | Un tècnic pot atendre múltiples incidències |
| zones → tickets | 1:N | 1 zona → múltiples tickets | Una zona pot tenir múltiples incidències |
| tickets → ticket_comments | 1:N | 1 ticket → múltiples comentaris | Seguiment detallat de cada incidència |
| zones → equipment | 1:N | 1 zona → múltiples equips | Localització física dels recursos |
| users → technicians | 1:1 | 1 usuari → 0..1 tècnic | Un tècnic és un usuari amb permisos especials |
| users → user_game_participations | 1:N | 1 usuari → múltiples participacions | Un usuari pot participar en múltiples tornejos |
| games → user_game_participations | 1:N | 1 joc → múltiples participacions | Un torneig pot tenir múltiples participants |
| games → teams | 1:N | 1 joc → múltiples equips | Un torneig pot tenir múltiples equips participants |
| teams → team_members | 1:N | 1 equip → múltiples membres | Un equip està format per diversos jugadors |
Casos d'Ús Resolts pel Disseny de BBDD
Gestió d'Assistència
- Creació i seguiment de tickets
- Assignació automàtica a tècnics
- Priorització per urgència
- Historial complet per usuari
Administració i Anàlisi
- Estadístiques de rendiment
- Control de recursos per zona
- Informes d'activitat tècnics
- Anàlisi de tendències d'errors
Gestió de Tornejos i Jocs
- Registre de participacions en jocs
- Resultats i estadístiques per jugador
- Formació d'equips per tornejos
- Classificacions i rànquings
- Historial de participacions per usuari
Implementació: Disseny Complet i Normalització
Disseny detallat de totes les taules amb camps, tipus de dades, relacions, restriccions i normalització fins a la Tercera Forma Normal (3FN).
Normalització de la Base de Dades
Eliminació de Grups Repetits
- Valors atòmics en cada camp
- Sense llistes o conjunts
- Identificador únic per fila
- Ex: Separar "equipament" en taula independent
Eliminació de Dependències Parcials
- Tots els camps depenen de la clau completa
- Descomposició de taules amb claus compostes
- Ex: ticket_id + user_id → comment_text
- Creació de taules de relacions
Eliminació de Dependències Transitives
- Cap camp no clau depèn d'un altre camp no clau
- Ex: technician_id → specialization (taula separada)
- Evitar redundància de dades
- Optimització d'emmagatzematge
