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

Modélisation Discussion :

Les contraintes de spécialisation


Sujet :

Modélisation

  1. #1
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut Les contraintes de spécialisation
    Bonjour à toute la communauté.

    Je viens vers vous car j'ai un petit souci pour assimiler la construction de table(s) selon des contraintes de spécialisation.
    - Contrainte de partition (xT)
    PROPRIETAIRE (PROP_ID, PROP_ADS, PROP_CP, PROP_VILLE)
    PERSONNE (PROP_ID, NOM_PERS)
    ENTREPRISE (PROP_ID, NOM_ETS)
    J'ai pour les clés des tables PERSONNE et ENTREPRISE mis la valeur Oui dans la propriété Null interdit.
    Mais quoi faire pour s'assurer qu'un PROPRIÉTAIRE ne puisse être enregistré qu'en tant que PERSONNE ou qu'en tant que ENTREPRISE (au moins un des deux, mais jamais les deux en même temps) ?
    - Contrainte d'exclusion (X)
    S'assurer qu'un PROPRIÉTAIRE ne puisse être enregistré qu'en tant que PERSONNE ou en tant que ENTREPRISE (ou aucun des deux, mais jamais les deux en même temps) ?
    Même question que ci-dessus.
    Merci d'avance.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Tu as 2 solutions :

    Tu peux dénormaliser un peu ta base en créant une table : PersonneEntreprise qui regroupe tous les champs nécessaires pour les entreprises et avoir un indicateur du type EstEntreprise (O/N). Cela te permet facilement de mettre un index unique sur le nom par exemple pour éviter des doubles. Attention le nom d'une personne est loin d'être unique tu peux très bien avoir 2 Jean MARTIN dans ta base doinc il faudra peut-être être plus subtil.

    C'est la solution que je te recommande elle te simpfiera la vie dans plein de point comme d'établir un annuaire complet.

    Sinon, tu peux garder ta solution actuelle et tester à chaque création, par du code VBA si le nom existe déjà et refuser l'insertion mais là il faut que tu le fasses dans ton formulaire de saisie, ce qui veut dire que si quelqu'un accède directement à tes tables, tu n'as plus aucune protection.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 862
    Points
    56 862
    Billets dans le blog
    40
    Par défaut
    bonsoir,

    un moyen simple et sécurisé ne serait-il pas de remplir les tables dans le bon ordre?

    A priori, à la création on sait si le propriétaire est une personne ou une entreprise, non?.
    Si on veut créer une nouvelle 'personne' propriétaire:
    - on créé un nouveau 'propriétaire'
    - on récupère l'identifiant créé PROP_ID
    - on créé la 'personne' avec l'identifiant précédent.

    et la contrainte xT est nécessairement vérifié

    ça me parait trop simple, j'ai manqué un truc?

Discussions similaires

  1. Desactiver temporairement les contraintes
    Par maitrebn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/10/2006, 17h58
  2. connaitre les contraintes d'une table??
    Par sali dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/11/2004, 11h46
  3. désactiver les contraintes
    Par romainw dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 15/07/2004, 10h46
  4. Question sur les contraintes d'intégrités
    Par eGGyyS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 27/04/2004, 13h51
  5. Les contraintes OCL
    Par bart64 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 19/12/2003, 18h47

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