Passa al contenuto principale

Schema DB iso

🎯 Cosa fa​

Persistence layer delle certificazioni ISO/qualitΓ : 3 tabelle.

πŸ”— Relazioni​

Referenze esterne:

  • iso.companyCertifications.companyId β†’ reg.companies(id)

πŸ—‚οΈ Dettaglio tabelle​

iso.certifications​

Anagrafica certificazioni (famiglia di norma).

  • PK: id
  • Campo: label (obbligatoria, es. "ISO 9001")

iso.certificationVersions​

Versioni datate di una certificazione.

  • PK: id
  • FK: certificationId β†’ iso.certifications(id)
  • Campi: label (es. "ISO 9001:2015"), year (int, es. 2015)

iso.companyCertifications​

Assegnazione certificazione a azienda con scadenza.

  • PK composita: (companyId, certificationVersionId)
  • FK: companyId β†’ reg.companies(id), certificationVersionId β†’ iso.certificationVersions(id)
  • Campi: expirationDate (nullable), notes

πŸ“ File chiave​

  • TrainingHub.Database/iso/Tables/certifications.sql
  • TrainingHub.Database/iso/Tables/certificationVersions.sql
  • TrainingHub.Database/iso/Tables/companyCertifications.sql

⚠️ Debito tecnico​

  • Nessun check su year. Nulla impedisce di inserire year = 1900 o year = 9999. Valutare CHECK constraint ragionevole.
  • expirationDate solo data, non datetime. OK per scadenze annuali ma se servisse granularitΓ  oraria non c'Γ¨.
  • Nessun indice su companyId di companyCertifications oltre al PK composito (che lo copre per partial key scan). Su dataset piccoli non Γ¨ problema.
  • Nessun soft-delete o stato. Certificazioni scadute restano valide in tabella: filtri applicati solo a livello query.

πŸ”— Vedi anche​