-- ===================================================================== -- 046 — NIS2 framework: TABELLE DI CONFIGURAZIONE (Epic C / C1) -- ===================================================================== -- Fonte dati AUTORITATIVA: docs/simon/C1_Misure_Requisiti.xlsx + -- C1_Vista_MisureRequisiti.xlsx (codifica NON variabile per direttiva Simon). -- Seed via application/data/nis2_framework_seed.json (import-only). -- -- Natura: SYSTEM-LEVEL (nessun organization_id), CANONICHE, sola-lettura per -- l'utente; configurabili solo da super_admin/sistema. Il runtime legge QUESTE -- tabelle (data-driven), NON file hardcoded. -- -- ADDITIVO e REVERSIBILE: DROP TABLE cfg_nis2_requisiti, cfg_nis2_misure, -- cfg_nis2_procedure, cfg_nis2_rischi, cfg_nis2_ambiti; -- Runner-safe: solo CREATE TABLE IF NOT EXISTS (no DELIMITER/stored-proc). -- ===================================================================== CREATE TABLE IF NOT EXISTS cfg_nis2_ambiti ( nist_code VARCHAR(16) NOT NULL, nist_descr TEXT NOT NULL, PRIMARY KEY (nist_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS cfg_nis2_procedure ( proc_code VARCHAR(16) NOT NULL, proc_descr TEXT NOT NULL, PRIMARY KEY (proc_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS cfg_nis2_rischi ( risk_code VARCHAR(16) NOT NULL, risk_descr TEXT NOT NULL, PRIMARY KEY (risk_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS cfg_nis2_misure ( misura_code VARCHAR(16) NOT NULL, nist_code VARCHAR(16) NOT NULL, area_politica VARCHAR(255) NOT NULL, misura_descr TEXT NOT NULL, ord INT NOT NULL, applies_important TINYINT(1) NOT NULL DEFAULT 1, applies_essential TINYINT(1) NOT NULL DEFAULT 1, PRIMARY KEY (misura_code), KEY idx_misura_nist (nist_code), KEY idx_misura_ord (ord), CONSTRAINT fk_misura_ambito FOREIGN KEY (nist_code) REFERENCES cfg_nis2_ambiti (nist_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS cfg_nis2_requisiti ( id INT NOT NULL AUTO_INCREMENT, n INT NULL, misura_code VARCHAR(16) NOT NULL, requisito_code VARCHAR(32) NOT NULL, requisito_descr TEXT NOT NULL, proc_code VARCHAR(16) NULL, risk_code VARCHAR(16) NULL, applies_important TINYINT(1) NOT NULL DEFAULT 0, applies_essential TINYINT(1) NOT NULL DEFAULT 0, PRIMARY KEY (id), UNIQUE KEY uq_req (misura_code, requisito_code), KEY idx_req_misura (misura_code), KEY idx_req_proc (proc_code), KEY idx_req_risk (risk_code), CONSTRAINT fk_req_misura FOREIGN KEY (misura_code) REFERENCES cfg_nis2_misure (misura_code), CONSTRAINT fk_req_proc FOREIGN KEY (proc_code) REFERENCES cfg_nis2_procedure (proc_code), CONSTRAINT fk_req_risk FOREIGN KEY (risk_code) REFERENCES cfg_nis2_rischi (risk_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;