IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Contrainte sur la valeur d'un champ


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Points : 75
    Points
    75
    Par défaut Contrainte sur la valeur d'un champ
    Bonjour,

    J'ai un formulaire qui contient des champs obligatoires.
    J'ai la possibilité de sauvegarder ce formulaire en mode brouillon même si tous les champs obligatoires ne sont pas remplis.

    Je voudrais savoir comment je pourrais gérer ma database.

    Sachant que je voudrais bien avoir les contraintes des champs obligatoires.

    J'ai pensé à dupliquer cette table et ne pas ajouter de contrainte puis transférer les données lorsque le formulaire n'est plus un brouillon, mais je sais que ceci n'est pas une bonne solution.

    Est-il possible de vérifier la valeur d'un champ et si celle-ci indique que ce n'est pas un brouillon alors je vérifie que tous les champs sont remplis.


    Merci de votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    Bonjour, je me permets d'actualiser mon post car je ne trouve absolument pas de solution.

    Merci encore.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations forums :
    Inscription : Juillet 2012
    Messages : 200
    Points : 342
    Points
    342
    Par défaut
    Ce qui doit orienter ton choix est ceci : "est-ce qu'il peut arriver que l'utilisateur ne saisisse pas toutes les données requises d'un seul coup?"
    Si oui, tu peux aussi utiliser l'idée de dupliquer la table et de transférer les données lorsque toutes les données requises ont été saisies.
    Si non, soit tu forces l'utilisateur à saisir toutes les données du formulaire avant l'enregistrement pour respecter les contraintes au niveau de la base de données.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    Bonjour,

    Merci de ton message même si celui-ci ne m'aide pas du tout puisque tu reformules ma question.

    Si oui, tu peux aussi utiliser l'idée de dupliquer la table et de transférer les données lorsque toutes les données requises ont été saisies.
    La solution que tu me proposes et qui se trouve être dans mon premier message ne me parait pas être la bonne solution puisque tu dupliques exactement la même table donc avec les mêmes champs. Ceci veut dire que pour mes recherches plus tard tout sera doublé.
    C'est pour cela que je cherchais une solution de contrainte qui me permettrait de faire ce que je veux.

    Si non, soit tu forces l'utilisateur à saisir toutes les données du formulaire avant l'enregistrement pour respecter les contraintes au niveau de la base de données.
    Ceci change le besoin et n'est donc pas approprié.

    Je suis en train de m'orientersur les contraintes check(). Je ne sais pas si cela fonctionnera, n’hésitez surtout pas à me donner vos solutions si vous en avez.

    Cordialement,

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Pourquoi ne pas ajouter une colonne "brouillon" de type booléen dans la table, et en tenir compte dans le code des contraintes ?
    Bien sûr, ça ne vaut que pour les contraintes "check", pas pour l'intégrité référentielle.

    Tatayo.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Au niveau modélisation je préfère votre première idée.

    Vous avez une entité formulaire avec des colonnes obligatoires et une autre entité formulaire_brouillon sans colonnes obligatoires.

    Un mécanisme de validation des brouillons copiera les données - hors clef primaire - vers la table formulaire doit être simple à mettre en place dans une procédure stockée.

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/06/2011, 14h43
  2. Controle sur la valeur d'un champ
    Par dahu17 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/01/2007, 15h43
  3. Réponses: 2
    Dernier message: 23/08/2006, 16h24
  4. test sur la valeur d'un champ
    Par Atchoum_002 dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2006, 16h16
  5. Réponses: 8
    Dernier message: 08/02/2006, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo