Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
-- ============================================================
|
||||
-- Omika Diagnostic Center -- 007_diagnostics_usage.sql
|
||||
-- Tâche 18 : télémétrie d'utilisation des écrans / fonctionnalités (additif).
|
||||
-- ============================================================
|
||||
-- IDEMPOTENT : ADD COLUMN IF NOT EXISTS + CREATE INDEX IF NOT EXISTS.
|
||||
-- AUCUN DROP, AUCUNE suppression, AUCUNE migration destructive.
|
||||
-- PostgreSQL 18 compatible (syntaxe disponible depuis 9.6).
|
||||
--
|
||||
-- Ajoute au diagnostic_event deux dimensions d'USAGE fonctionnel, NULLABLES :
|
||||
-- les événements antérieurs restent parfaitement valides (screen_code = NULL,
|
||||
-- feature_code = NULL), AUCUN backfill, AUCUNE valeur inventée (« UNKNOWN »/« N/A »
|
||||
-- interdits).
|
||||
--
|
||||
-- screen_code : code fonctionnel STABLE d'un écran (ex. AGENDA, SITE_DETAIL).
|
||||
-- Produit DEPUIS le catalogue applicatif (jamais un nom de
|
||||
-- Page/ViewModel, jamais un identifiant métier, jamais une saisie
|
||||
-- utilisateur). Null pour les événements background sans écran.
|
||||
-- feature_code: code fonctionnel STABLE d'une action métier significative
|
||||
-- (ex. EMAIL_SEND, REPORT_GENERATE). Attaché à l'événement précis
|
||||
-- de l'action, jamais à un « contexte courant » global. Null si non
|
||||
-- applicable.
|
||||
--
|
||||
-- CHOIX DE TYPE (cohérence schéma) : TEXT sans VARCHAR, comme les autres chaînes
|
||||
-- (priority, level, component, license_number…). La validation (longueur, valeurs
|
||||
-- bornées) est portée par le code au moment de la résolution, comme les autres
|
||||
-- champs. Les deux colonnes sont NON SENSIBLES : jamais de DeviceId/UserId/
|
||||
-- CollaborateurId/email/téléphone/token/id métier dynamique (§9/§10/§72).
|
||||
-- ============================================================
|
||||
|
||||
ALTER TABLE diagnostic_event
|
||||
ADD COLUMN IF NOT EXISTS screen_code TEXT,
|
||||
ADD COLUMN IF NOT EXISTS feature_code TEXT;
|
||||
|
||||
-- Index de recherche « tous les ScreenView d'un écran dans le temps » (T18, §49) :
|
||||
-- les agrégations d'usage filtrent par (event_code, screen_code) puis par période,
|
||||
-- mais l'index composé (screen_code, timestamp_utc DESC) couvre le filtre écran +
|
||||
-- le tri temporel des diagnostics filtrés (§60), aligné sur le style de
|
||||
-- ix_diagnostic_event_device_key_timestamp (006).
|
||||
CREATE INDEX IF NOT EXISTS ix_diagnostic_event_screen_code_timestamp
|
||||
ON diagnostic_event (screen_code, timestamp_utc DESC);
|
||||
|
||||
-- Index (feature_code, timestamp_utc DESC) : filtre fonctionnalité + tri temporel.
|
||||
-- FeatureCode est une dimension de catalogue à cardinalité TRÈS faible (< 10), donc
|
||||
-- un index est peu sélectif ; il est néanmoins ajouté par symétrie avec screen_code
|
||||
-- car le filtre « Tous les diagnostics d'une fonctionnalité » (§60) est prévu.
|
||||
CREATE INDEX IF NOT EXISTS ix_diagnostic_event_feature_code_timestamp
|
||||
ON diagnostic_event (feature_code, timestamp_utc DESC);
|
||||
Reference in New Issue
Block a user