-- ===================================================================== -- 047 — Stato/valutazione per-org di ogni REQUISITO (Epic C / C1 operativo) -- ===================================================================== -- Per ogni organizzazione e per ogni requisito del framework (cfg_nis2_requisiti) -- conserva la VALUTAZIONE DEL RISCHIO (che "parte vuota") e lo STATO di conformita'. -- È da qui che emerge lo stato di conformita' dell'azienda (sostituisce il modulo -- "Analisi GAP ACN", C3). Org-scoped, additivo, reversibile (DROP TABLE). -- -- Runner-safe: solo CREATE TABLE IF NOT EXISTS (no DELIMITER/stored-proc). -- ===================================================================== CREATE TABLE IF NOT EXISTS org_requisito_state ( id INT NOT NULL AUTO_INCREMENT, organization_id INT NOT NULL, requisito_id INT NOT NULL, stato ENUM('da_valutare','non_applicabile','non_conforme','parziale','conforme') NOT NULL DEFAULT 'da_valutare', valutazione_rischio TEXT NULL, note TEXT NULL, updated_by INT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uq_org_req (organization_id, requisito_id), KEY idx_ors_org (organization_id), KEY idx_ors_req (requisito_id), CONSTRAINT fk_ors_org FOREIGN KEY (organization_id) REFERENCES organizations (id) ON DELETE CASCADE, CONSTRAINT fk_ors_req FOREIGN KEY (requisito_id) REFERENCES cfg_nis2_requisiti (id) ON DELETE CASCADE, CONSTRAINT fk_ors_user FOREIGN KEY (updated_by) REFERENCES users (id) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;