Empêcher les doublons et les doubles réservations
Objectif
Faire refuser net à une table deux sortes d’enregistrements :
- Les doublons — un second produit avec le même code, une seconde personne avec le même e-mail.
- Les doubles réservations — une seconde réservation de la même salle sur un créneau qui chevauche une réservation existante, un second poste pour la même personne au même moment.
Prérequis
- Vous êtes connecté avec un rôle de créateur et la solution de la table est ouverte.
- Pour une règle sans chevauchement, la table a deux champs date et heure : le début et la fin de la période.
Étapes
- Ouvrez la table et sélectionnez Contraintes de table dans son menu.
- Ajoutez une règle :
- Pas de doublons — puis choisissez le champ. La règle se lit : Deux enregistrements ne peuvent pas partager une valeur dans Code.
- Pas de chevauchement — puis choisissez les champs de début et de fin de la période et, si les réservations de choses différentes peuvent se chevaucher entre elles, le champ qui dit ce qui est réservé : Deux enregistrements ne peuvent pas se chevaucher dans le temps, pour chaque Salle, de Début à Fin. Laissez la première zone sur toute la table quand il n’y a qu’une seule chose à réserver.
- Sélectionnez Enregistrer.
Pour retirer une règle, sélectionnez la corbeille au bout de sa ligne puis Enregistrer.
Ce qui se passe en coulisses
- C’est la base de données qui applique ces règles, pas le formulaire. Elles valent quelle que soit la façon dont un enregistrement est écrit — formulaire, import de feuille de calcul, script, processus — et elles valent quand deux personnes enregistrent au même instant : l’une réussit, l’autre est refusée. Une vérification écrite dans une règle métier ne peut pas le garantir, car les deux sauvegardes peuvent lire « rien encore » avant que l’une n’écrive.
- Un enregistrement dont le champ est vide n’est pas un doublon. Autant d’enregistrements que vous voulez peuvent laisser vide un champ unique. S’il doit aussi être rempli, rendez-le également obligatoire.
- Des périodes bout à bout ne se chevauchent pas. Une réservation qui finit à 10:00 et une qui commence à 10:00 sont toutes deux permises.
- La personne qui enregistre apprend quelle règle elle a enfreinte. Une sauvegarde refusée indique que la valeur est déjà utilisée dans ce champ, ou que la période en chevauche une autre, et rien n’est enregistré.
- Les règles voyagent avec la solution et sont appliquées dans chaque environnement où elle est importée.
Quand les enregistrements existants enfreignent déjà la règle
Une règle ne peut être ajoutée que si les enregistrements déjà présents la respectent. Si deux produits partagent déjà un code, l’enregistrement d’une règle Pas de doublons sur Code est refusé avec un message qui nomme le champ, et la table garde les règles qu’elle avait. Votre règle reste à l’écran : corrigez les enregistrements, puis sélectionnez de nouveau Enregistrer.
Dépannage
- Les sélecteurs de période sont vides. — La table n’a pas de champs date et heure à elle. Ajoutez d’abord les champs de début et de fin.
- Un champ que je veux n’est pas proposé. — Les fichiers, les images et les recherches sur plusieurs tables ne peuvent pas faire partie d’une règle : ils ne contiennent pas une valeur unique comparable. Les champs de la plateforme comme Créé le ne sont pas proposés non plus.
- Une règle retirée semble encore refuser des sauvegardes. — Vérifiez que vous avez sélectionné Enregistrer après l’avoir retirée ; la liste est enregistrée d’un bloc.
Scénarios associés
- Numéroter les enregistrements automatiquement — quand la plateforme doit créer le numéro de référence pour vous.
- Rendre un champ obligatoire ou en lecture seule.
- Ajouter un champ à une entité.