Règles uniques (model)

De Wiki1000
(Différences entre les versions)
(Contrôle des règles uniques à l’exécution)
Ligne 27 : Ligne 27 :
 
*Lors de la transaction SQL, le framework s’assure que le code SQL vérifie l’unicité des règles uniques. Ceci est nécessaire pour s’assurer que plusieurs stations concurrentes ne créent pas des doublons au cours des mises à jours. En cas de détection de doublons une seule des transactions peut être validée, mais il est aussi possible qu’aucune transaction ne soit validée.
 
*Lors de la transaction SQL, le framework s’assure que le code SQL vérifie l’unicité des règles uniques. Ceci est nécessaire pour s’assurer que plusieurs stations concurrentes ne créent pas des doublons au cours des mises à jours. En cas de détection de doublons une seule des transactions peut être validée, mais il est aussi possible qu’aucune transaction ne soit validée.
  
{{warning|Une règle unique n’est pas un index unique dans la base de données.}}
+
{{warning|Une règle unique n’est pas forcément un index unique dans la base de données.}}
  
 
{{info|La mise en oeuvre d'une règle unique dans la base de données peut différer d'un moteur à l'autre.}}
 
{{info|La mise en oeuvre d'une règle unique dans la base de données peut différer d'un moteur à l'autre.}}

Version du 18 septembre 2017 à 12:38

Introduction

Une règle unique est une règle définissant de manière unique un objet. C'est une composante importante de l'intégrité du modèle car les règle uniques empêchent l'enregistrement des doublons dans la base de données.

Une règle unique est constituée d’un ensemble d’attributs dont les combinaisons de valeurs doivent être uniques. L'utilisation des règles uniques ne s'impose pas pour toutes les classes, les exigences du modèle déterminent la définition des règles uniques.

Définition des règles uniques

La définition des règles uniques se fait au moyen d'un assistant : Cliquez droit sur la classe sélectionnée et puis sur la fonction Ajouter une règle unique du menu contextuel.

Vous accédez à la fenêtre suivante :

image1.png

  • Message d'erreur

Format du message qui sera affiché lorsque la règle unique n'est pas respectée.

  • Liste des colonnes disponibles
Double cliquez sur les éléments de la liste pour les ajouter dans les éléments de la règle.
  • Nom de l’index SQL
Par défaut un nom d’index est créé automatiquement à partir du nom de la table et des colonnes de l’index. Il se peut que ce nom ne soit pas valide, trop long par exemple, et qu’il soit nécessaire de définir explicitement un nom pour l’index.

Faites OK, vous retrouvez la définition de la clé unique dans l'arbre de conception, dans la section Clés uniques de la classe.

Contrôle des règles uniques à l’exécution

Le contrôle des règles uniques est fait en deux étapes :

  • Pendant la phase de validation d'une transaction, le framework vérifie l'unicité de chaque objet en transaction, en se basant sur les règles uniques. L'existence d'un autre objet remplissant les mêmes conditions déclenche l'annulation de la transaction et l'affichage d'un message d'erreur.
  • Lors de la transaction SQL, le framework s’assure que le code SQL vérifie l’unicité des règles uniques. Ceci est nécessaire pour s’assurer que plusieurs stations concurrentes ne créent pas des doublons au cours des mises à jours. En cas de détection de doublons une seule des transactions peut être validée, mais il est aussi possible qu’aucune transaction ne soit validée.
Exclam-20px.png Attention : Une règle unique n’est pas forcément un index unique dans la base de données.
Info-20px.png Note : La mise en oeuvre d'une règle unique dans la base de données peut différer d'un moteur à l'autre.

Exemple

Le libellé de la classe TProfilTVA est déclaré dans une règle unique. Le message d'erreur suivant est déclenché à la tentative d'enregistrement de deux profils avec le même libellé.

image2.png

ModèleDéveloppement DSM

Outils personnels