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

Access Discussion :

Contraintes Intégrité Impossible de commencer, table réflexive : voir Message Erreur


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Contraintes Intégrité Impossible de commencer, table réflexive : voir Message Erreur
    Bonjour.
    Je dois modeliser une écurie, et donc les étalons, qui appartiennent à un propriétaire à une date t etc...jusqu'ici tout va bien. Sauf que le responsable impose que seul les Etalons -pas de jument, pourquoi ? Je sais c'est bizarre, mais ne me le demandez pas, il en est ainsi - doivent etre modelisés, et donc avoir qu'un père, et ce père se trouve dans l'écurie, il ne veut pas en acheter, et ne veut pas enregistrer les juments. Il veut ainsi avoir des statistiques sur les étalons, voir leur perfs au niveau des courses, leur santé leur maladie etc surtout les tracer par rapport à leur géniteur male uniquement. Donc niveau modelisation y a peu de soucis, puisqu'un cheval ne peut avoir qu'un et un seul pere, et un etalon peut engendrer 0 voir plusieur poulains-seul les males seront retenus-. Jusqu'ici on est d'accord, y a pas de quoi casser trois pattes à un canard. Meme un étudiant première année est capable de le modeliser. Or c'est à l'implementation sous Microsoft Access que commence le problème. J'arrive pas à saisir un premièr enregistrement, puisque fort logiquement Access demande le père du premièr qui n'existe pas. Quesions : Comment faire ? Quoi faire ? Et par où commencer ? Je n'ai pas le droit de modifier la cardinalité de l'étalon, qui doit impérativement rester : 1 à plusieur, en anglais ça donne "one-to-many" . En fait c'est la bonne vieille modelisation d'une table reflexive et ses contraintes d'integrités et de clefs etrangères.

    Message Erreur : You cannot add or change record because record is required in table.

    Par avance merci pour tout aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Bonjour,
    belle prose... lol...
    je suis intéressé par le sujet... peux tu nous faire par de ta structure relationnelle ?
    a plus

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Moi aussi, peux tu poster une image de tes relations ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Merci à vous pour vos réponses, et sollicitudes, j'a eu un empechement familliale qui m'a pas mal troublé la semaine dernière. Ce problème de base de données est un problème que j'ai rencontré au travail et j'aimerai bien qu'on le résolve ensemble.
    Je posterai dés que possible.
    Bien à vous.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Ci joint le MCD-J'ai pas le droit de vous montrer toute la DB, pour les raisons que vous pouvez comprendre-
    Nom : Stable.jpg
Affichages : 303
Taille : 47,2 Ko
    Ici le MPD sous Access, rien d'exceptionnel une relation reflexive, voir une auto-jointure en "anglais" si je m'exprime correctement
    Nom : Stable_MPD_Access.jpg
Affichages : 269
Taille : 78,8 Ko
    Et ici en voulant saisir le premier canasson je récupère ce message d'erreur
    Nom : ErrorStable-1.jpg
Affichages : 287
Taille : 61,7 Ko
    Le problème c'est la table Stallion, à mon avis c'est le genre d'erreur hyper-classique, on a du vous poser je ne sais combien de fois ce genre de questions.
    Merci à ceux qui veulent se joindre où qui se sont joints au sujet.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Oui, dans votre table STALLION, le champ IDSTALLION_ISFATHER contient actuellement la valeur 1, or il n'y a pas encore de valeur 1 pour le champ IDSTALLION pour cette table (cf. relation réflexive entre IDSTALLION et IDSTALLION_ISFATHER de cette même table). D'où le message d'erreur.

    Il n'y aurait pas moyen de remplir en suivant l'ordre chronologique suivant le champ BIRTHDATE, du plus ancien au plus récent, pour être sûr de saisir les pères avant d'y faire référence ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par User Voir le message
    Bonsoir,

    Oui, dans votre table STALLION, le champ IDSTALLION_ISFATHER contient actuellement la valeur 1, or il n'y a pas encore de valeur 1 pour le champ IDSTALLION...... du plus ancien au plus récent, pour être sûr de saisir les pères avant d'y faire référence ?

    Cdlt,
    Bonsoir.
    C'est justement la problèmatique que j'ai, je n'arrive pas à commencer, je n'arrive pas à saisir le premier bourricot, c'est ce que j'avais expliqué plus haut. Au vu du MCD -J'espère que vous avez tous fait Merise, si c'est pas le cas dites le moi, et je vais générer un Diagramme de classes en conséquence- les étalons dans cette écurie doivent avoir un et un seul père , par contre un géniteur peut avoir plusieur poulains -jusqu'ici on est tous d'accord-. Y-a-t-il finalement un problème de conception ? Parce qu'à la base cette histoire ressemble à la question qui a été le premier sur cette terre l'oeuf où la poule ? Il est évident qu'à un moment les cannassons qui sont nées dans cette écurie ont un père, qui vit, où a vécu dans cette écurie. Cependant qu'en est il du premier ? Il est bien née quelque part. Si je vois qu'il y a un problème avec la conception, je suis pret à retourner chez le client lui montrer l'impossibilité de la chose. Mais avant faut que je sois sur de mon coups. Au vu des explications que j'ai eu il est peut etre possible qu'il y ait un problème avec le MCD. Mais j'aimerai confirmation.
    Cette histoire me fait tourner la tete!

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Oui, on est d'accord, mais avez-vous obligation de remplir ce champ IDSTALLION_ISFATHER pour le 1er, ne pouvez-vous pas le laisser à null ? dans ce cas y-a-t-il un message d'erreur ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par User Voir le message
    Oui, on est d'accord, mais avez-vous obligation de remplir ce champ IDSTALLION_ISFATHER pour le 1er, ne pouvez-vous pas le laisser à null ? dans ce cas y-a-t-il un message d'erreur ?

    Cdlt,
    Je dois obligatoirement remplir tous les champs du premier enregistrement. Je peux fournir le script de l'extrait de DB si vous le souhaitez ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    J'en ai discuté avec les collègues et ils m'autorisent à changer les cardinalités dans la table Stallion -Etalon-. Par contre si je le fais quelque chose me gene et meme me contrarie. Dans la vie de tous les jours un etre animal n'a qu'un et seul pere, et cet animal peut avoir 0 voir plusieur descendants. Renoncer à cette cardinalité serait de dire qu'Access 2016 est incapable de gérer une telle chose ? De mon point de vue Microsoft Access est un trés bon logiciel, et il doit gérer ce genre cardinalité dans une relation reflexive. Ainsi je n'ai pas envie de toucher aux cardinalités si vous le voulez bien. Je suis sure qu'avec Access on doit pouvoir trouver une soluton.

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Cela ne veut pas dire que le 1er n'a pas de père, cela veut simplement dire qu'il n'est pas présent dans la base, il faut prévoir ce cas de figure.

    Dans la pratique on doit souvent adapter les choses..

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  12. #12
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par User Voir le message
    Bonsoir,

    Cela ne veut pas dire que le 1er n'a pas de père, cela veut simplement dire qu'il n'est pas présent dans la base, il faut prévoir ce cas de figure.

    Dans la pratique on doit souvent adapter les choses..

    Cdlt,
    Et c'est là où je demande de l'aide, parce qu'avec cette cardinalité je n'arrive pas en m'en sortir. Comment peut on faire dans Access pour prévoir ce cas de figure ?
    Par avance merci.

  13. #13
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour gema57, User,

    Je crois qu'il y a plus que juste le premier enregistrement qui ne fonctionnerait pas dans ton modèle. En effet avec Access tu pourrais, et ce même lors de la création d'un enregistrement, inscrire le même numéro pour IDSTALLION et IDSTALLION_ISFATHER ce qui est impossible dans la vrai vie.

    Le moyen d'empêcher cela est avec des "macro de données".

    Pour ce qui est de ton problème original, je crois qu'il faut permettre une valeur nulle pour le premier enregistrement seulement ou sinon permettre le même numéro pour IDSTALLION et IDSTALLION_ISFATHER pour le premier enregistrement seulement et l'interdire pour les autres.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  14. #14
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Robert1957 Voir le message
    ...lors de la création d'un enregistrement, inscrire le même numéro pour IDSTALLION et IDSTALLION_ISFATHER ce qui est impossible dans la vrai vie.

    Le moyen d'empêcher cela est avec des "macro de données".
    Bonjour Robert et merci pour ton intervention.
    C'est ce que j'ai essayé de faire lors de la saisie du premier enregistrement. Sauf qu'Access a vu rouge, et m'a fouttu dehors, si si sérieux, Access m'a viré du système. Le logiciel ne voulait plus me voir. Je ne vous décrirai pas l'état dans lequel j'étais. Je vous assure que c'est pas des moments agréables et glorieux.
    Et dites moi voir les gars, ne me dites pas que ce problème est nouveau. Il a du se presenter au moins des dizaines de fois. Une relation reflexive avec -methode Merise sous entendu, en particulier le MCD- avec cardinalités
    1.1----> 0.N ça du se présenter je ne sais combien de fois. Je ne pense pas avoir inventé la poudre avec ce pauvre schemas de DB. Comment avez vous fait jusqu'à là ? Une chose me parait évidente, je ne suis surement pas le premier à avoir affronter frontalement le problème.

    Sinon à Robert les macros je sais pas comment tu ferais - Office 2016- auquel cas je suis prenneur si t'as des tuyaux.

  15. #15
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Contraintes Intégrité Impossible de commencer, table réflexive : voir Message Erreur
    Bonjour,

    Je comprends ton désarroi concernant ce type de relation. Juste une question, pourquoi vouloir créer 2 tables vu que tout canasson est appelé à devenir père un jour?
    Est-ce que ce modèle ne te conviendrait pas mieux ?

    Nom : Capture.JPG
Affichages : 355
Taille : 40,1 Ko
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  16. #16
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Citation Envoyé par Ric500 Voir le message
    Bonjour,

    Je comprends ton désarroi concernant ce type de relation. Juste une question, pourquoi vouloir créer 2 tables vu que tout canasson est appelé à devenir père un jour?
    Est-ce que ce modèle ne te conviendrait pas mieux ?

    Nom : Capture.JPG
Affichages : 355
Taille : 40,1 Ko
    J'avais cru comprendre que c'était déjà le cas dans son modèle.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  17. #17
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Contraintes Intégrité Impossible de commencer, table réflexive : voir Message Erreur
    Bonjour,

    Dans le modèle que je propose tous les chevaux sont saisis dans la même table, l'extraction des pères/fils se faisant sur critères.

    A noter: l'index avec doublons sur IDStallionFather serait plutôt à remplacer par un champ booléen ISStallionFather qui servirait de critère.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  18. #18
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Finalement nous avons résolu le problème en changeant la cardinalité de la table Stallion, ce qui est fort logique au regard du contexte de cette écurie. Néanmoins il serait utile de garder ce post dans votre base de données. En effet ça pourrait aider ceux qui ont déja eu, qui rencontre, voir qui pourrait ce problème de cardinalité reflexive à l'avenir.
    Je tiens quand meme à vous remercier tous pour votre participation, vos idées, vos encouragements. Grand merci à tous.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/12/2011, 15h00
  2. ecriture impossible dans une table vierge
    Par stefano dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/01/2007, 17h47
  3. Réponses: 10
    Dernier message: 24/09/2006, 14h08
  4. contrainte intégrité référencielle
    Par Sophie2097 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/04/2006, 18h34
  5. ORACLE : contraintes intégrité
    Par djbenvik dans le forum Oracle
    Réponses: 1
    Dernier message: 17/03/2006, 14h08

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