4D v16.3

Propriétés des tables

Accueil

 
4D v16.3
Propriétés des tables

Propriétés des tables  


 

 

Vous pouvez paramétrer plusieurs propriétés pour les tables. Ces propriétés sont définies à l'aide de la Palette Inspecteur ou, pour certaines d'entre elles, via le menu contextuel des tables.

Un trigger est une méthode qui est exécutée automatiquement lorsque certains événements liés à la table surviennent. Les événements proposés sont les suivants :

  • Sur sauvegarde nouvel enregistrement,
  • Sur sauvegarde enregistrement,
  • Sur suppression enregistrement.

Les événements triggers peuvent être paramétrés dans la Palette Inspecteur ou via le menu contextuel associé à la table (clic droit sur la zone de libellé de la table) :

Cochez chaque événement pour lequel vous souhaitez activer le trigger. 

Vous pouvez accéder directement au trigger d’une table depuis la fenêtre de structure en cliquant sur le bouton Editer... de l’Inspecteur ou en sélectionnant Modifier méthode... dans le sous-menu contextuel. Pour plus d’informations sur les triggers, reportez-vous à la section Types de méthodes.

Notes :

  • Vous pouvez également créer et visualiser les triggers à partir de la Page Méthodes de l’Explorateur.
  • La barre d’informations de l’Editeur de structure indique les triggers activés pour chaque table.

Le trigger que vous saisissez dans l’éditeur de méthodes ne sera exécuté que lorsque le ou les événement(s) que vous avez coché(s) seront détectés.

Les attributs paramètrent l'apparence et le comportement général de la table. 

Cette option vous permet de rendre une table invisible dans le mode Application et pour les plug-ins. Vous pouvez activer cette option pour des tables utilitaires ou provisoirement inutilisées.

Rendre une table invisible vous permet de limiter les opérations qu’un utilisateur peut réaliser sur cette table ainsi que sur ses champs. Une fois invisible, une table n’apparaît plus dans les éditeurs ni dans la plupart des boîtes de dialogue standard du mode Application. De même, elle ne peut plus être utilisée par les plug-ins. 

Les éditeurs et boîtes de dialogue concernés dans le mode Application sont les suivants :

Dans chacun de ces éditeurs, l’utilisateur ne peut pas visualiser ou choisir la table ou un de ses champs. Par exemple, l’utilisateur ne peut pas réaliser un tri basé sur un champ d’une table invisible.

Attention, lorsqu’ils travaillent avec les éditeurs, les utilisateurs disposent de la possibilité de sauvegarder sur disque les caractéristiques des recherches ou des tris qu’ils ont précédemment créés. Dans ce cas, les tables déclarées invisibles postérieurement peuvent être utilisées. De plus, les utilisateurs peuvent saisir manuellement les noms des tables invisibles dans l'.

Dans l’éditeur de structure, les tables invisibles et leur champs sont affichés en caractères italiques.

Vous pouvez attribuer une couleur à chaque table. L’utilisation de couleurs vous permet d’accroître la lisibilité d’une structure complexe. Par exemple, vous pouvez utiliser dans une base une couleur pour toutes les tables relatives aux clients et une autre couleur pour celles relatives au stock.

Note : Il est également possible d’attribuer individuellement une couleur à chaque champ (cf. paragraphe et chaque lien (cf. paragraphe Définition).

Pour définir la couleur d’une ou de plusieurs tables, effectuez votre sélection et choisissez une couleur depuis :

  • le bouton Couleur de la barre d’outils de l’éditeur,
  • la commande Couleur du menu contextuel des tables,
  • l’option Couleur de la Palette Inspecteur.

L’option Automatique permet d’appliquer la couleur standard d’origine à la table.

Cette option vous permet d’optimiser la suppression d’une sélection d’enregistrements réalisée à l’aide de la commande DELETE SELECTION

Quand 4D supprime une sélection, les marqueurs des enregistrements sont aussi supprimés. Un marqueur d’enregistrement est un en-tête attaché à l’enregistrement qui contient des informations relatives à cet enregistrement. La suppression des marqueurs et des enregistrements est plus lente qu’une suppression des seuls enregistrements. Dans certains cas, il peut être souhaitable de ne pas supprimer automatiquement les marqueurs d’enregistrements. 

Cette option vous permet de définir le type de suppression que vous souhaitez utiliser. Pour accélérer la suppression d’une sélection comportant de nombreux enregistrements réalisée à l’aide de la commande DELETE SELECTION, désélectionnez l’option Enregistrement(s) définitivement supprimé(s). Les marqueurs d’enregistrements ne seront pas supprimés. Cette option ne peut pas être paramétrée par programmation.

Lorsque cette option est cochée, 4D génèrera, lors de l'utilisation de la table, les informations nécessaires à la réplication de ses enregistrements. La fonction de réplication des enregistrements permet de synchroniser les données de deux bases 4D pour plus de sécurité.

Une fois l'option activée, les mécanismes de réplication doivent être mis en oeuvre à l'aide de commandes spécifiques du langage SQL de 4D ou via le protocole HTTP. Pour plus d’informations sur cette option ainsi que sur les mécanismes de réplication des enregistrements via le SQL, reportez-vous à la section Réplication via le SQL. Pour plus d'information sur la réplication via HTTP, reportez-vous au paragraphe URL 4DSYNC/.

Par défaut, l'option n'est pas cochée. Pour qu'elle soit sélectionnable, une clé primaire doit avoir été définie via le SQL dans la table répliquée. Dans le cas contraire, l’option est grisée. 4D vous permet de définir la clé primaire d'une table dans l'éditeur de structure (cf. ci-dessous).

Cette option permet de contrôler l'exposition de la table dans le contexte des requêtes 4D Mobiles adressées à la base 4D via REST. Par défaut, toutes les tables sont exposées en 4D Mobile.
Pour des raisons de sécurité, vous pouvez souhaiter ne pas exposer certaines tables de votre base aux appels 4D Mobile. Par exemple, si vous avez créé une table [Users] dans laquelle vous stockez les noms et mots de passe des utilisateurs, il est préférable de ne pas l’exposer.

Pour ne pas exposer une table (ni aucun des champs qu'elle contient), désélectionnez l'option Exposer avec le service 4D Mobile pour la table.

Note : Vous pouvez également définir cette option au niveau de chaque champ de la table, cf. section Propriétés des champs.

Cette option est utilisable dans le contexte de la fonctionnalité "4D Mobile". Pour plus d'informations, reportez-vous au manuel 4D Mobile.

Par défaut, cette option est cochée pour les nouvelles tables ainsi que pour les tables des bases de données converties.

Cochez cette option pour que les opérations effectuées sur les données de la table soient incluses dans le fichier d’historique de la base (lorsque ce fichier est généré). Cette option devra généralement être cochée pour la plupart des tables. Toutefois, à des fins d’optimisation, vous pouvez la désélectionner, par exemple pour les tables temporaires ou des tables utilisées pour l’import de données.

Note : L’option est grisée lorsque la table ne contient pas de clé primaire. 

Il est important de noter que cette option indique uniquement que les données de la table doivent être journalisées si la base utilise un fichier d’historique, elle n’active pas le processus de journalisation lui-même au niveau de la base de données (cf. section Gestion du fichier d’historique).

4D affiche une icône d’alerte à droite de l’option Inclure dans le fichier d’historique lorsque toutes les conditions d’activation ne sont pas réunies.

Tant que cette icône est affichée, la journalisation n’est pas activée. Pour connaître la cause de cette alerte, placez le curseur de la souris au-dessus de l’icône :

Les messages suivants peuvent être affichés :

MessageCauseAction corrective
En attente de création de la clé primaireImpossible de journaliser les opérations si la table ne contient pas de clé primaireCréer une clé primaire dans la table via le SQL ou à l’aide du menu contextuel de la table
En attente de correction des clés primairesLes valeurs de la clé primaire ont été vérifiées et comportent des anomaliesRechercher et supprimer les doublons ou valeurs nulles dans le enregistrements pour le champ (ou utiliser une autre clé primaire)
En attente d’activation de la journalisation au niveau de la base de donnéesL’option d’activation globale de la journalisation n’est pas cochéeCocher l’option Utiliser le fichier d’historique dans la page Sauvegarde/Configuration des Propriétés de la base

La zone Commentaires de la vous permet de stocker des informations supplémentaires sur la table. Ces commentaires seront accessibles à tous les développeurs.
A noter que chaque champ et chaque lien dispose de sa propre zone de commentaires.

SQL  

La zone SQL de la comporte le menu “Schémas” et une zone d’informations.

  • Le menu “Schémas” liste tous les schémas SQL définis dans la base. Vous pouvez utiliser ce menu pour définir le schéma auquel doit appartenir la table (il est également possible de modifier cette propriété via des commandes SQL). Toute base comporte au moins un schéma, nommé DEFAULT_SCHEMA. Par défaut, toutes les tables appartiennent à ce schéma. Pour plus d’informations sur les schémas SQL, reportez-vous au paragraphe Schémas dans le Guide de référence SQL de 4D.
  • La zone d’informations signale si le nom de la table ne respecte pas les règles de la nomenclature SQL (par exemple, le SQL n’autorise pas qu’un nom de table contienne des espaces, à la différence de 4D).

La clé primaire désigne le ou les champ(s) de la table chargé(s) d’identifier de façon unique les enregistrements. La définition d'une clé primaire est nécessaire à la fonction de réplication des enregistrements d'une table de 4D (cf. Réplication via le SQL) ainsi qu'à la fonction de journalisation (cf. Gestion du fichier d’historique). 

4D vous permet de créer, de modifier ou de supprimer directement des clés primaires via le menu contextuel de l’éditeur de structure.

Note : Les clés primaires peuvent également être définies via le langage SQL à l'aide de la clause PRIMARY KEY suivie de la liste de colonnes (cf. paragraphe Clé primaire dans le Guide de référence SQL de 4D).

Les valeurs des champs clés primaires doivent être manipulées avec précaution afin d'assurer en toutes circonstances l'intégrité des données. Une valeur de champ clé primaire doit notamment respecter les règles suivantes :

  • elle ne doit pas être vide,
  • elle doit être unique,
  • une fois créée, elle ne doit en principe jamais être modifiée, en particulier si :
    • les fonctions de réplication ou de synchronisation de 4D sont activées
    • la fonctionnalité 4D Mobile (ou similaire) est activée
    • la fonction de journalisation de la base est activée (sauvegarde ou miroir logique utilisant le fichier d'historique)
    • les clés primaires sont utilisées pour des besoins de communication ou de synchronisation avec des systèmes externes.

Il est fortement déconseillé de modifier une valeur de champ clé primaire, même si 4D le permet pour des cas d'usage spécifiques. Si vous devez absolument modifier votre champ clé primaire (par ex. si vous avez utilisé un champ "numéro de sécurité sociale" en tant que clé primaire et des valeurs erronées ont été saisies), il est conseillé de plutôt supprimer (désactiver) la clé primaire courante et d'ajouter un nouveau champ clé primaire avec affectation automatique.

Les champs clé primaires peuvent être de type entier long ou au format UUID (type alpha). Nous recommandons dans la plupart des cas le format UUID avec option UUID auto. Même si le type entier long occupe moins de place sur le disque, les UUIDs présentent de multiples avantages, facilitant par exemple la fusion de bases de données indépendantes, l'import/export de données, la mise en oeuvre de stratégies élaborées de miroir/restitution ou encore la synchronisation avec des systèmes externes.

Pour créer une clé primaire depuis l'éditeur de structure :

  1. Sélectionnez le ou les champ(s) devant constituer la clé primaire de la table.
  2. Cliquez avec le bouton droit de la souris et choisissez la commande Créer la clé primaire dans le menu contextuel (cette commande apparaît uniquement pour les champs dont le type est éligible aux clés primaires) :

    Il n'est pas possible de définir plusieurs clés primaires pour une table. Si une clé primaire était déjà définie, une boîte de dialogue d'alerte s'affiche, indiquant que la clé primaire existante sera désactivée au préalable.

La clé primaire est créée immédiatement. Les champs inclus dans la clé primaire apparaissent soulignés dans l’éditeur et leur description SQL fait apparaître le mot-clé PRIMARY KEY.

Lorsque vous créez une clé primaire dans une table contenant déjà des enregistrements (utilisation d'un champ existant ou ajout d'un nouveau champ), 4D vérifie la conformité des valeurs présentes ou effectue automatiquement des opérations de mise à jour : 

  • Le ou les champ(s) appartenant à la clé primaire ne peuvent pas comporter de valeurs dupliquées. Si des valeurs dupliquées pour la clé existent dans les enregistrements de la table, une boîte de dialogue d’erreur s'affiche et il n'est pas possible de la créer.
  • Si les valeurs dupliquées sont des valeurs vides ou nulles (cas d'un champ clé ajouté), vous pouvez cocher l'option de génération automatique correspondante ( pour les champs Alpha au ou pour les champs de type Entier long). Dans ce cas, 4D parcourt la totalité des enregistrements de la table et affecte automatiquement une valeur calculée à chaque clé primaire. A noter que ce processus est séquentiel peut nécessiter un temps non négligeable si le nombre d'enregistrements est important.

Note : Le ou les champ(s) appartenant à la clé primaire n'acceptent pas la valeur null.

Pour supprimer la clé primaire d'une table :

  1. Cliquez avec le bouton droit de la souris sur la table contenant la clé primaire et choisissez la commande Supprimer la clé primaire dans le menu contextuel :

Une boîte de dialogue de confirmation apparaît. Si vous cliquez sur OK, la clé primaire est immédiatement supprimée.

A compter de 4D v14, toute nouvelle table créée dans la base contient un champ clé primaire par défaut :

Le champ est nommé "ID", est de type Entier long et dispose notamment des attributs suivants :

  • Unique,
  • Refuser l’écriture de la valeur Null,
  • Incrémentation auto,
  • Index automatique

Note : Le nom et le type des champs primaires créés par défaut peuvent être modifiés dans la Page Structure des Préférences de l’application 4D.

Vous pouvez utiliser ce champ tel quel ou modifier son nom ainsi que ses propriétés si vous le souhaitez (vous pouvez par exemple utiliser un champ UUID). Vous pouvez également le supprimer si vous souhaitez utiliser un ou plusieurs autre(s) champ(s) en tant que clé primaire.

Il est en revanche fortement conseillé de conserver une clé primaire dans chaque table 4D. 

Note : Le champ clé primaire par défaut n’est pas ajouté lorsqu’une table est créée via la commande SQL CREATE TABLE ou importée dans la base.



Voir aussi  

Propriétés des champs

 
PROPRIÉTÉS 

Produit : 4D
Thème : Définir la structure de la base de données

 
HISTORIQUE 

 
MOTS-CLÉS 

clé primaire, réplication

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v16)
4D - Mode Développement ( 4D v16.1)
4D - Mode Développement ( 4D v16.3)