< Précédent | Suivant >

Leçon 2.4 : Utiliser la génération automatique de clés

Dans la leçon précédente, vous avez configuré des règles de navigation visant à garantir que l'utilisateur entre un ID unique pour chaque nouvelle annonce créée. Ce procédé manque à la fois de convivialité et de réalisme, car il peut contraindre l'utilisateur à essayer plusieurs ID avant d'en trouver un qui ne soit pas déjà utilisé. Dans cette leçon, vous allez configurer la génération automatique de clés afin que la base de données attribue elle-même un nouveau numéro à chaque nouvel enregistrement créé.

La génération automatique de clés est un mécanisme complexe. En bref, la base de données est capable de choisir de nouvelles clés si elle comporte une table spécialement réservée à la génération de clés. Cette table doit comporter une colonne d'incréments contenant la liste des clés non utilisées, et une colonne d'identités contenant une liste de numéros séquentiels, commençant à 1. Lorsque la base de données a besoin d'une nouvelle clé, elle extrait celle de la ligne qui contient la valeur 1 dans sa colonne d'identités. La table est ensuite mise à jour afin qu'une nouvelle clé soit prête pour la fois suivante.

Pour configurer la génération automatique de clés, vous devez connaître son principe de fonctionnement. En premier lieu, la base de données doit comporter une table spécialement réservée à cet usage. Cette table comporte deux colonnes :
  • La colonne d'incréments stocke les clés disponibles. Lorsque la base de données a besoin d'une nouvelle clé unique, elle l'extrait de cette colonne.
  • La colonne d'identités est une liste de numéros qui ne comporte qu'une seule instance du numéro 1. Elle indique à la base de données quelle clé sélectionner dans la colonne d'incréments. La colonne d'identités est la clé primaire de la table de génération de clés.

Lorsque la base de données a besoin d'une nouvelle clé unique, elle recherche la ligne qui contient la valeur 1 dans la colonne d'identités. La colonne d'incréments de cette ligne est celle qui contient la première clé disponible. La base de données utilise cette clé et met à jour la table afin qu'une nouvelle clé soit disponible pour la fois suivante.

Voici un exemple de table de génération de clés. A votre avis, quelle est la prochaine clé disponible ? La réponse est fournie après la table.
Tableau 1. Table de génération de clés
Colonne d'identités Colonne d'incréments
3 78
4 3
1 65
2 12
La première clé disponible dans cette table est 65, car elle se trouve sur la même ligne que celle où apparaît la valeur 1 dans la colonne d'identités.

Une fois que cette clé a été extraite de la table, cette dernière est mise à jour afin qu'une nouvelle clé soit prête pour la fois suivante. La base de données peut également extraire plusieurs clés à la fois en prenant les valeurs d'incrément de plusieurs lignes.

En résumé, pour que la génération automatique de clés fonctionne, il suffit de créer une table avec deux colonnes : une colonne de clé primaire servant de colonne d'identités, et une colonne réservée au stockage de la prochaine clé disponible. Cette table doit être initialisée avec un enregistrement dont la colonne d'identités contient la valeur 1 et dont la colonne d'incréments contient la première clé disponible. Ces conditions étant remplies, vous pouvez mettre en oeuvre la génération automatique de clés.

Configurer la génération automatique de clés

L'exemple de base de données fourni avec ce tutoriel contient une table de génération de clés appelée KEYS. Comme cela est expliqué plus haut, ses deux colonnes serviront à associer un nouveau numéro d'identification à chaque nouvel enregistrement. Dans les étapes qui suivent, vous allez configurer l'enregistrement relationnel create_record afin qu'il extraie son ID de la table KEYS.
  1. Double-cliquez sur la page new_record.jsp dans la vue Explorateur Enterprise.
  2. Dans la vue Données de page, faites un double clic sur l'enregistrement relationnel create_record. La fenêtre de configuration des enregistrements relationnels s'affiche.
  3. Cochez les cases Réutiliser la définition des métadonnées d'un enregistrement existant ou d'une liste d'enregistrements existante et Insérer dans l'enregistrement des données existantes de la base de données, puis cliquez sur Suivant.
  4. Dans la liste déroulante, sélectionnez votre connexion à la base de données, puis cliquez sur Suivant.
  5. La fenêtre Configurer un enregistrement relationnel comporte une liste de liens dans sa partie droite. Cliquez sur Générer une clé automatiquement. La fenêtre Génération de clé s'ouvre.
  6. Sélectionnez Utiliser la génération automatique de clé.
  7. Développez la branche W5SAMPLE et sélectionnez la table KEYS.
  8. Dans la liste Sélectionner une colonne identité, choisissez KEY_ID.
  9. Dans la liste Sélectionner une colonne incréments, choisissez NEXT_KEY.

    Une seule clé étant nécessaire pour l'ID de l'annonce, conservez la valeur 1 dans la zone Clés extraites en une fois. Si vous aviez besoin de plusieurs clés, ce paramètre indiquerait à la base de données de les sélectionner toutes à la fois.

    La fenêtre doit se présenter comme suit :

    Fenêtre

  10. Cliquez sur Fermer pour fermer la fenêtre Génération de clé, puis sur Terminer pour appliquer les modifications. Désormais, la valeur du champ ID sera automatiquement générée pour chaque nouvel enregistrement. Vous devez maintenant supprimer la zone d'entrée de l'ID afin que l'utilisateur ne puisse pas entrer de valeur.
  11. Placez le curseur sur la toute première ligne du formulaire d'entrée en cliquant sur le texte Id:.
  12. Sur la barre de menus, sélectionnez Table > Supprimer > Supprimer la ligne.
  13. Sauvegardez la page.
Si vous souhaitiez afficher la clé générée automatiquement, vous pourriez supprimer le composant d'entrée de l'ID et le remplacer par un composant de sortie lié à la colonne ID de l'enregistrement create_record. La clé générée automatiquement apparaîtrait alors en haut du formulaire, sans pouvoir être modifiée par l'utilisateur.

Tester l'application terminée

Lorsque vous serez prêt à publier votre application Web, vous devrez disposer d'un serveur capable de l'héberger afin que les utilisateurs puissent accéder à votre site par l'intermédiaire d'Internet. Cependant, dans le cas présent, vous pouvez utiliser un environnement d'exécution disponible afin de tester votre site localement, sur un serveur simulé. Pour savoir comment procéder, reportez-vous à la Leçon 1.3 : Tester le site Web.

Etat des connaissances

Vous avez terminé la leçon 2.4. Vous avez appris à configurer la génération automatique de clés.
< Précédent | Suivant >

Vos commentaires