Architecture de la Base de Données (MySQL)
1. Vue d'ensemble
L'écosystème Alta Call s'appuie sur une base de données relationnelle MySQL unifiée. Cette base de données orchestre l'administration des clients, des licences, la télémétrie en temps réel, l'analyse de qualité audio (Business Intelligence) et le diagnostic automatique d'incidents.
Ce document fait office de référence officielle pour le schéma de données, décrivant le modèle conceptuel, les dictionnaires de tables et les optimisations physiques (indexations et rétentions).
2. Modèle Conceptuel des Données (MCD)
Le diagramme d'entités-relations suivant illustre la structure des tables principales gérées par le backend Laravel et leurs cardinalités :
classDiagram
direction LR
class clients {
int id PK
string name
string email
string vat_number
json config
}
class groups {
int id PK
int client_id FK
string name
}
class users {
int id PK
int group_id FK
string name
string email
string vmo_user_id
int audiostream1_id FK
}
class licenses {
int license_id PK
int group_id FK
string licenses_key
bool valid
}
class machines {
int id PK
int group_id FK
string vmo_machine_id
string computer
string version
}
class telemetries {
bigint id PK
int client_id FK
int user_id FK
string process_id
datetime date
json payload
}
class users_summaries {
bigint id PK
int user_id FK
string transfo_mode
date date
float duration
}
class machines_issues {
bigint id PK
int machine_id FK
string issue_code
datetime first_update
datetime last_update
string var1
}
class audiodevices {
int id PK
string name
string type
}
class audiostreams {
int id PK
int device_capture_id FK
int device_playback_id FK
float duration
}
clients "1" --> "0..*" groups : possède
groups "1" --> "0..*" users : contient
groups "1" --> "0..*" licenses : attribue
groups "1" --> "0..*" machines : enregistre
users "1" --> "0..*" telemetries : génère
users "1" --> "0..*" users_summaries : possède
users "0..1" --> "0..*" audiostreams : utilise
machines "1" --> "0..*" machines_issues : subit
telemetries "0..1" --> "0..*" machines_issues : déclenche
audiostreams "0..1" --> "1" audiodevices : capture
audiostreams "0..1" --> "1" audiodevices : restitue
3. Dictionnaire Exhaustif des Tables
Voici la description technique détaillée de chaque table de la base de données de production :
3.1. Table clients (Organisations)
Cette table représente les entreprises clientes d'Alta Voce (ex: centres de contacts).
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant unique de l'organisation. |
account_id | BigInt | Oui | Index / FK | ID du compte de facturation associé. |
name | Varchar(255) | Oui | Index / FK | Nom légal de l'entreprise. |
first_name | Varchar(255) | Oui | - | Prénom du contact principal. |
last_name | Varchar(255) | Oui | - | Nom du contact principal. |
email | Varchar(255) | Non | Unique | Email principal d'administration. |
auto_invoice | TinyInt (Bool) | Non | - | Indique si la facturation automatique est activée. |
email_billing | Varchar(255) | Oui | - | Email de facturation dédié. |
creation_date | Timestamp | Non | - | Date de création historique. |
config | Json | Oui | - | Profil de paramètres réseau, SLA et restrictions. |
address_id | BigInt | Oui | Index / FK | ID de l'adresse postale associée. |
vat_number | Varchar(255) | Oui | Index / FK | Numéro de TVA Intracommunautaire. |
created_at | Timestamp | Oui | - | Horodatage de création de la fiche. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
group_id | BigInt | Oui | Index / FK | ID du groupe ou de l'équipe d'appartenance. |
3.2. Table groups (Départements / Équipes)
Un client peut diviser son organisation en plusieurs groupes logiques (ex: équipe de jour, support technique).
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant unique du groupe. |
name | Varchar(255) | Non | - | Nom de l'équipe / département. |
client_id | BigInt | Non | Index / FK | ID de l'organisation cliente (clients.id). |
creation_date | Timestamp | Non | - | Date historique de création. |
created_at | Timestamp | Oui | - | Date et heure de création de l'enregistrement en base. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
3.3. Table users (Agents et Superviseurs)
Cette table contient les profils des utilisateurs finaux rattachés à des groupes.
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant unique de l'utilisateur. |
vmo_user_id | Varchar(255) | Oui | Index / FK | Identifiant unique généré par le client de bureau. |
name | Varchar(255) | Oui | Index / FK | Nom ou identifiant système Windows de l'agent. |
first_update | Datetime | Oui | - | Premier signal d'activité reçu. |
last_update | Datetime | Oui | - | Dernier signal d'activité reçu. |
transfo_applied_at | Datetime | Oui | - | Horodatage d'application de la transformation. |
transfo_applied_id | Int | Oui | - | ID de la transformation appliquée. |
country_code | Varchar(10) | Oui | - | Code pays (ex: FR, US). |
machine_id_last | BigInt | Oui | Index / FK | Dernière machine physique connue pour cet utilisateur. |
audiostream1_id | BigInt | Oui | Index / FK | ID de la session de flux audio active (audiostreams.id). |
status | Varchar(50) | Oui | Index / FK | Statut technique ou opérationnel. |
ui_locked | TinyInt (Bool) | Non | - | Indique si l'interface client de l'agent est verrouillée. |
timezone | Varchar(50) | Oui | - | Fuseau horaire configuré. |
config | Json | Oui | - | Configuration spécifique au format JSON. |
metadata | Json | Oui | - | Métadonnées additionnelles au format JSON. |
abtest_id | BigInt | Oui | Index / FK | ID de la campagne d'A/B Testing en cours. |
last_params_tuning | Datetime | Oui | - | Date du dernier ajustement des paramètres algorithmiques. |
group_id | BigInt | Oui | Index / FK | ID du groupe d'appartenance (groups.id). |
created_at | Timestamp | Oui | - | Date et heure de création de l'enregistrement en base. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
3.4. Table machines (Postes Physiques)
La table machines recense tous les ordinateurs physiques sur lesquels l'application de bureau Alta Call a été installée et validée.
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant unique de la machine. |
vmo_machine_id | Varchar(255) | Non | Index / FK | Identifiant matériel unique (UUID) du poste. |
web_ip_address | Varchar(15) | Oui | - | Adresse IP publique (Web) de l'entité. |
local_ip_address | Varchar(15) | Oui | - | Adresse IP locale de la machine. |
first_update | Datetime | Oui | - | Date du premier signal ou de la première mise à jour. |
last_update | Datetime | Oui | - | Horodatage du dernier paquet reçu. |
country_code | Varchar(4) | Oui | Index / FK | Code pays (ex: FR, US). |
city | Varchar(255) | Oui | - | Ville associée. |
locked | TinyInt (Bool) | Oui | - | Verrouillage administratif (1 = verrouillé). |
os | Varchar(255) | Oui | - | Système d'exploitation. |
os_version | Varchar(255) | Oui | - | Version du système d'exploitation. |
cpu_model | Varchar(255) | Oui | - | Modèle physique du processeur (CPU). |
cpu | Double(8,2) | Oui | - | Utilisation CPU par le processus. |
cpu_machine | Double(8,2) | Oui | - | Utilisation CPU globale de la machine. |
memory | Int | Oui | - | Mémoire vive (RAM) disponible ou consommée. |
nbrunningproc | Int | Oui | - | Nombre de processus Alta Call en cours d'exécution. |
refreshdevicelistnbcalls | Int | Oui | - | Nombre de rafraîchissements du gestionnaire de périphériques audio. |
process_id_last | BigInt | Oui | Index / FK | UUID du dernier processus Alta Call actif. |
session_id_active | Varchar(255) | Oui | - | ID de la session Windows active. |
audiostream1_id | BigInt | Oui | Index / FK | ID du flux audio primaire ouvert. |
status | Int | Oui | Index / FK | État technique (actif = 1, erreur = 0). |
config | Json | Oui | - | Configuration spécifique au format JSON. |
hostname | Varchar(255) | Oui | Index / FK | Nom d'hôte du réseau (ordinateur). |
group_id | BigInt | Non | Index / FK | ID du groupe lié (groups.id). |
license_id | BigInt | Oui | Index / FK | ID de la licence attribuée. |
created_at | Timestamp | Oui | - | Date et heure de création de l'enregistrement en base. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
3.5. Table licenses (Clés d'Authentification)
Stocke les licences d'accès nécessaires pour utiliser le logiciel de bureau Alta Call.
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant unique (Clé Primaire). |
license_id | Varchar(36) | Non | Unique | Identifiant de la licence. |
licenses_key | Varchar(36) | Non | Unique | Token d'authentification unique requis par le client. |
valid | TinyInt (Bool) | Non | - | Validité de la clé (1 = valide, 0 = révoquée). |
user | Varchar(255) | Oui | - | Nom de l'agent associé si nominative. |
fancyname | Varchar(255) | Oui | - | Alias convivial pour le support technique. |
added_on | Timestamp | Non | - | Date de création de la clé. |
group_id | BigInt | Non | Index / FK | ID du groupe de destination (groups.id). |
account_id | BigInt | Oui | Index / FK | ID du compte de facturation associé. |
client_id | BigInt | Oui | Index / FK | ID de l'organisation cliente liée. |
created_at | Timestamp | Oui | - | Date et heure de création de l'enregistrement en base. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
3.6. Table telemetries (Rapports Bruts Optimisés)
Stocke les paquets de métriques brutes envoyés par les clients de bureau.
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant unique de la télémétrie. |
appname | Varchar(255) | Oui | - | Nom du logiciel client (ex: alta-call). |
version | Varchar(255) | Oui | - | Version du client au moment de l'envoi. |
process_id | Varchar(36) | Oui | Index / FK | UUID du processus Alta Call émetteur. |
date | Datetime | Oui | Index / FK | Date exacte de capture des métriques par le client. |
cp_nbrunningproc | Int | Oui | - | Nombre de processus Alta Call ouverts dans la session. |
payload | LongText (JSON) | Non | - | Contenu optimisé (filtré) du payload (voir doc Télémétrie). |
payload_original | Json | Oui | - | Copie de sauvegarde intégrale du payload JSON brut avant optimisation/nettoyage. |
client_id | BigInt | Oui | Index / FK | ID de l'organisation cliente (clients.id). |
user_id | BigInt | Oui | Index / FK | ID de l'agent d'appels lié (users.id). |
first_for_date | TinyInt (Bool) | Oui | - | Indicateur du premier paquet de télémétrie reçu pour ce jour. |
last_for_date | TinyInt (Bool) | Oui | - | Indicateur du dernier paquet de télémétrie reçu pour ce jour. |
created_at | Timestamp | Oui | - | Date et heure de l'insertion de l'enregistrement en base. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
3.7. Table users_summaries (Résumés d'Activité Quotidiens)
Table optimisée contenant les résumés d'appels consolidés quotidiens pour l'analyse décisionnelle (Business Intelligence) et la facturation.
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant unique du résumé. |
user_vid | Varchar(255) | Oui | - | Identifiant de vue du périphérique associé à l'agent. |
user_id | BigInt | Non | Index / FK | ID de l'utilisateur concerné (users.id). |
process_id | BigInt | Oui | Index / FK | ID du processus de télémétrie. |
version | Varchar(255) | Oui | - | Version active du client. |
process_first_update | Datetime | Oui | - | Horodatage de la première mise à jour du processus. |
nb_telemetries | Smallint | Oui | - | Nombre total de télémétries brutes reçues ce jour. |
session_is_active | TinyInt (Bool) | Oui | - | Flag indiquant si la session était active lors de la consolidation. |
session_is_locked | TinyInt (Bool) | Oui | - | Flag indiquant si la session était verrouillée lors de la consolidation. |
nbrunningprocs_mean | Double(8,2) | Oui | - | Moyenne du nombre de processus en cours d'exécution. |
is_up | TinyInt (Bool) | Oui | - | Flag de consolidation de statut de présence (heartbeat). |
date | Date | Non | Index / FK | Journée de l'activité consolidée. |
transfo_id | BigInt | Oui | Index / FK | Identifiant de la transformation appliquée (transfos.id). |
transfo_mode | Varchar(40) | Oui | - | Mode de traitement audio appliqué (SMA, VMO, STP). |
transfo_params | Varchar(255) | Oui | - | Paramètres sérialisés en JSON de la transformation. |
audio_params | Text | Oui | - | Paramètres audio sérialisés en JSON. |
time_start | Datetime | Oui | - | Début de la période de flux audio actif. |
time_end | Datetime | Oui | - | Fin de la période de flux audio actif. |
duration | Double(8,2) | Oui | - | Durée totale d'activité cumulée sur le canal audio (sec). |
abtest_id | BigInt | Oui | Index / FK | ID de la campagne A/B test s'il y a lieu. |
abtest_label_id | BigInt | Oui | Index / FK | ID du groupe de label d'A/B test lié. |
device_capture_name | Varchar(255) | Oui | - | Microphone physique actif (ex: Jabra Evolve Link). |
device_playback_name | Varchar(255) | Oui | - | Casque ou haut-parleur physique actif. |
device_capture_id | BigInt | Oui | Index / FK | ID du périphérique de capture dans le catalogue. |
device_playback_id | BigInt | Oui | Index / FK | ID du périphérique de lecture dans le catalogue. |
virtdev_out_appname | Varchar(255) | Oui | - | Softphone de téléphonie détecté (ex: Zoiper, Genesys). |
audio_states | Varchar(1024) | Oui | - | Liste des changements d'états audio enregistrés. |
audio_state | Varchar(3) | Oui | - | Dernier état audio (RUN, STP, LOD, FAI, CRA). |
audio_features | Text | Oui | - | Caractéristiques de qualité audio sérialisées en JSON. |
stat_f0_median | Double(8,2) | Oui | - | Hauteur médiane de la voix en Hz (Pitch). |
stat_f0_iqr | Double(8,2) | Oui | - | Écart interquartile de la fréquence fondamentale vocale. |
stat_inputvoiceddb_median | Double(8,2) | Oui | - | Puissance vocale médiane d'entrée (dB). |
stat_inputunvoicedlowdb_median | Double(8,2) | Oui | - | Puissance vocale médiane d'entrée pour les segments non-voisés bas (dB). |
created_at | Timestamp | Oui | - | Date et heure de création de l'enregistrement en base. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
3.8. Table machines_issues (Registre d'Incidents)
Registre de diagnostic automatique pour l'administration et le support technique. Les incidents résolus sont supprimés lors des nettoyages automatiques.
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant unique de l'incident. |
machine_id | BigInt | Non | Index / FK | ID de la machine concernée (machines.id). |
first_update | Datetime | Oui | - | Horodatage de l'ouverture/découverte de l'incident. |
last_update | Datetime | Non | - | Horodatage du dernier paquet de télémétrie indiquant l'anomalie. |
issue_code | Varchar(32) | Non | - | Code de l'anomalie (ex: EXCESSIVE_XRUNS). |
var1 | Varchar(255) | Oui | - | Paramètre de diagnostic auxiliaire optionnel. |
created_at | Timestamp | Oui | - | Date de création du record. |
updated_at | Timestamp | Oui | - | Date de dernière mise à jour. |
3.9. Table audiodevices (Périphériques Audio Référencés)
Catalogue de tous les microphones et casques d'écoute recensés sur le parc de machines.
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant du périphérique. |
name | Varchar(255) | Non | - | Nom exact du pilote du périphérique (ex: Jabra BIZ 2400 II). |
type | Varchar(24) | Oui | - | Catégorie du périphérique : capture (microphone/entrée) ou playback (casque/haut-parleur/sortie). |
ins | Int | Non | - | Nombre de canaux d'entrée du périphérique (canaux microphone). |
outs | Int | Non | - | Nombre de canaux de sortie du périphérique (canaux haut-parleur). |
descr_json | Json | Oui | - | Descripteur matériel étendu en JSON : APIs audio supportées (WASAPI, DirectSound), fréquences d'échantillonnage, nombre de canaux et métadonnées du pilote. |
md5 | Varchar(32) | Non | Index / FK | Hash MD5 du nom du périphérique, utilisé comme clé de déduplication pour éviter les doublons du même modèle. |
created_at | Timestamp | Oui | - | Date et heure de création de l'enregistrement en base. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
3.10. Table audiostreams (Flux Audio Actifs)
Cette table représente l'état d'activité dynamique des flux de traitement audio ouverts par l'application client.
| Colonne | Type SQL | Nullable | Clé | Rôle & Description |
|---|---|---|---|---|
id | BigInt | Non | PK | Identifiant du flux audio. |
last_update | Datetime | Non | Index / FK | Horodatage de la dernière télémétrie reçue pour ce flux. |
uptime | Int | Oui | - | Durée de fonctionnement cumulée du flux audio en secondes depuis le dernier démarrage. |
transfo_id | BigInt | Oui | Index / FK | ID du preset de transformation vocale actif (transfos.id). |
transfo_mode | Varchar(40) | Oui | - | Mode de transformation actif : SMA (Smile), VMO (Voice), STP (Arrêté), ou MANUAL. |
full_latency | Double(8,2) | Oui | - | Latence totale aller-retour du traitement audio en millisecondes (capture → transformation → restitution). |
voice_level | Double(8,2) | Oui | - | Niveau de puissance vocale d'entrée en temps réel, en décibels (dB). |
noise_level | Double(8,2) | Oui | - | Niveau de bruit de fond en temps réel, en décibels (dB). |
proccomptimeframe_mean | Double(8,2) | Oui | - | Temps de calcul moyen par trame audio (ms) — mesure la charge DSP. |
proccomptimeframe_max | Double(8,2) | Oui | - | Temps de calcul maximal observé par trame audio (ms). |
ptcomptimeframe_mean | Double(8,2) | Oui | - | Temps de calcul moyen de la transformation de pitch par trame (ms). |
ptcomptimeframe_max | Double(8,2) | Oui | - | Temps de calcul maximal de la transformation de pitch par trame (ms). |
framesize_max | Int | Oui | - | Taille maximale du tampon audio observée en échantillons pendant la session. |
backend_xruns | Int | Oui | - | Nombre de sous-dépassements/dépassements du tampon audio au niveau WASAPI — indique des coupures audio. |
vmo_xruns | Int | Oui | - | Nombre de xruns au niveau du moteur de traitement vocal Alta Call. |
catchups | Int | Oui | - | Nombre d'événements de rattrapage temporel : survient quand le moteur de traitement prend du retard sur le temps réel et doit sauter des trames pour se re-synchroniser. |
device_capture_id | BigInt | Oui | Index / FK | ID du périphérique d'entrée actif (microphone) (audiodevices.id). |
device_playback_id | BigInt | Oui | Index / FK | ID du périphérique de sortie actif (casque/haut-parleur) (audiodevices.id). |
fs | Int | Oui | - | Fréquence d'échantillonnage audio du flux en Hz (ex: 44100, 48000). |
virtdev_out_appname_lastupdate | Datetime | Oui | - | Horodatage de la dernière détection du softphone/application de téléphonie connecté. |
virtdev_out_appname | Varchar(255) | Oui | - | Nom du softphone ou de l'application de communication connectée à la sortie virtuelle d'Alta Call (ex: Zoiper5, Teams, Genesys). |
created_at | Timestamp | Oui | - | Date et heure de création de l'enregistrement en base. |
updated_at | Timestamp | Oui | - | Date et heure de la dernière mise à jour de l'enregistrement. |
3.11. Tables Annexes, Utilitaires et Logs
En dehors des tables principales d'exécution du flux audio et de télémétrie, la base de données MySQL contient des tables annexes dédiées à la facturation, la sécurité, l'A/B Testing et l'historique de diagnostic.
Catégorie A : Facturation, Tarifs et Historiques de Consommation
invoices: Répertoire des factures générées mensuellement pour les organisations. Contient les montants, les états de paiement et les liens vers les fichiers PDF de facturation.pricingsetpricing_clients: Grilles tarifaires de base et tarifs personnalisés par client (définissant le coût à la seconde d'appel transformé).daily_usagesetmonthly_usages: Consommation consolidée de durée de voix transformée et de bande passante calculée par client de manière quotidienne et mensuelle.accounts: Comptes de facturation Stripe ou Gandi liés à l'abonnement de chaque client.addresses: Adresses de facturation physiques associées à chaque client.
Catégorie B : Administration et Configuration de l'A/B Testing
transfos: Catalogue des modes de transformation acoustique disponibles (avec leur configuration de base, ex : preset SMA).abtest_transfos: Table de pivot associant une campagne d'A/B Test à ses presets de transformations vocales cibles.labels: Skill-tags ou étiquettes métiers (ex : "Langue - Anglais", "Service Client Premium") pouvant être attribués aux agents pour filtrer les A/B tests.user_labels: Table de pivot reliant les utilisateurs (users) à leurs étiquettes métiers (labels).
Catégorie C : Systèmes de Diagnostics Applicatifs et Logs
processes2: Suivi en direct de chaque processus actif d'Alta Call sur toutes les machines (utilisé pour la détection d'instances multiples concurrentes).telemetry_incidents: Table d'agrégation d'incidents critiques pour déclencher des alertes par mail aux administrateurs.altacall_log_entriesetaltacall_log_records: Fichiers de logs système envoyés périodiquement par le client de bureau en cas d'erreur bloquante ou d'exception fatale.plugin_logs: Registre d'événements techniques envoyés par les modules d'intégration intégrés aux softphones des agents.events: Trace historique d'actions clés de l'application (ex : "Démarrage Moteur Audio", "Changement de micro").user_request_logs: Journal de requêtes HTTP utilisé pour sécuriser l'API et appliquer du rate limiting contre les attaques DDoS.
Catégorie D : Métriques Audio et Qualité
audio_data: Métadonnées associées aux fichiers d'enregistrements audio de tests.recordingsetrecording_clients: Règles d'activation d'enregistrement audio de diagnostic configurées à distance par client ou groupe.machine_summariesetuser_daily_summaries: KPI pré-calculés chaque nuit pour accélérer l'affichage des graphiques administrateur sans relire les tables brutes.metricset performance_metrics : Mesures de latence réseau et d'utilisation CPU cumulées pour les bilans de performance.
Catégorie E : Sécurité, Versioning et Notifications
access_attempts: Journalisation des tentatives de connexion à l'administration Laravel Filament (avec IP et statut) pour prévenir les attaques par force brute.api_keys: Clés privées/publiques d'API fournies aux tiers pour interagir avec le backend Alta Voce.impersonations: Logs d'audit des administrateurs Alta Voce se connectant en tant que client (pour le support technique).configs: Configuration système globale de l'application Laravel (ex : version minimale requise).software_versions: Catalogue des versions logicielles publiées avec leurs chemins de fichiers d'installation, utilisé pour la mise à jour automatique.outdated_machines: Registre temporaire recensant les ordinateurs physiques tournant sous des versions du logiciel jugées obsolètes ou non supportées.notifications: Boîte de réception des messages système ou alertes envoyés aux administrateurs d'organisation.suggestions: Retours utilisateurs ou tickets de suggestion saisis par les agents depuis l'application de bureau.
4. Recommandations Physiques & Indexation (MySQL)
[!IMPORTANT] Indexation Stratégique pour les Requêtes de BI et de Diagnostics Afin de garantir des temps de réponse inférieurs à 100 ms sur les tableaux de bord Filament Admin et l'Espace Client, les index MySQL suivants doivent impérativement être présents et optimisés en production :
Index Composite sur
telemetries:CREATE INDEX idx_telemetries_user_date ON telemetries (user_id, date);
Pourquoi : Utilisé en continu lors des calculs nocturnes de résumés d'activités pour agréger les télémétries d'un utilisateur sur un jour donné.Index Composites sur
users_summaries:CREATE INDEX idx_users_summaries_date_user ON users_summaries (date, user_id);
Pourquoi : Indispensable pour l'affichage instantané des graphes de durées d'appels et statistiques de Pitch par agent dans l'Espace Client Vue.js.Index d'état sur
machines_issues:CREATE UNIQUE INDEX idx_machines_issues_lookup ON machines_issues (machine_id, issue_code);
Pourquoi : Permet de récupérer instantanément et sans doublons les incidents ouverts d'une machine sans balayage complet.