IMAN NOOR
Definir les claus primàries per vincular tasques:

Definir les claus primàries per vincular tasques:

L’objectiu d’aquest document és definir una estructura de base de dades sòlida on la informació estigui connectada de manera lògica. Un bon disseny de claus evita la duplicitat de dades i garanteix que cada tasca pertanyi sempre a un entorn vàlid.

1- Definició de l’Estructura Relacional:

Hem dissenyat tres entitats principals per gestionar el flux de treball: Usuaris, Projectes i Tasques.

Taula: Usuaris (Users):

  • PK: id_usuari (INT, Auto-increment): Identificador numèric únic per a cada membre.
  • Justificació: Utilitzem una clau subrogada (ID) perquè és més eficient per al motor de la base de dades que una clau natural (com el nom o l’email), garantint que la identitat de l’usuari sigui immutable.

Taula: Projectes (Projects):

  • PK: id_projecte (INT, Auto-increment): Identificador únic de cada projecte.
  • FK: propietari_id (Referencia a Usuaris.id_usuari): Estableix qui és el responsable del projecte.

Taula: Tasques (Tasks):

  • PK: id_tasca (INT, Auto-increment): Clau primària per identificar cada activitat.
  • FK: relacio_projecte (Referencia a Projectes.id_projecte): Vincula la tasca amb el seu projecte corresponent.
  • FK: usuari_assignat (Referencia a Usuaris.id_usuari): Determina qui ha d’executar la feina.
  • FK: id_superior (Referencia a Tasques.id_tasca, Nullable): Permet crear una jerarquia on una tasca pot dependre d’una altra (sub-tasques).

2- Argumentació Tècnica (Criteris de Qualitat):

CriteriAplicació en aquest projecte
ReferencialLes claus foranes (FK) impedeixen que existeixin “dades orfes”. Per exemple, no es pot crear una tasca sense un projecte vàlid associat.
Unicitat absolutaGràcies a les claus primàries (PK) auto-incrementals, el sistema diferencia automàticament tasques que podrien tenir el mateix títol.
Funcionalitat RealLa clau recursiva (id_superior) permet que el sistema s’adapti a metodologies de treball complexes on els projectes es divideixen en fases i sub-tasques.

3- Restriccions i Optimització del Sistema:

Per garantir un rendiment òptim i la seguretat de la informació, hem definit:

  • Regla de Neteja (ON DELETE CASCADE): Si s’elimina un projecte, totes les seves tasques s’esborren automàticament per mantenir la base de dades neta de residus.
  • Camps Obligatoris (NOT NULL): Hem definit que el títol de la tasca i el vincle amb el projecte no poden estar buits. Una tasca sense context no té valor operatiu.
  • Índexs de Consulta Ràpida:
    • Creat un índex a usuari_assignat per accelerar les cerques de “Les meves tasques”.
    • Creat un índex a estat_tasca per filtrar ràpidament feines pendents o acabades.

4- Escenaris d’Ús (Casos Pràctics):

  • Assignació Dinàmica: Mitjançant la FK usuari_assignat, el sistema pot generar llistats personalitzats per a cada empleat en temps real.
  • Gestió de Dependències: Si una tasca “Disseny de Logo” és sub-tasca de “Identitat Corporativa”, la FK id_superior manté aquesta relació d’arbre sense necessitat de taules extra.
  • Seguretat de Dades: L’ús de IDs numèrics protegeix la privacitat, ja que les relacions internes no exposen dades personals de l’usuari si es mouen entre sistemes.