Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
Bonjour
J'ai l'honneur de vous dire que votre site est plus excellent... Mes encouragements.

Ma question :
Je veux savoir comment manipuler les cardinalités et les FICHIERS de LIAISON issus de 2 fichier exemple :
Fichier "eleve" (clé : IDeleve) et fichier "CLASSE" (clé:IDclasse) , étant donné la relation complexe entre ces deux fichier un fichier de liaison a été crée avec (IDeleve_IDclasse, IDeleve, IDclasse) IDeleve_IDclasse est une clé composée générée automatiquement.. comment sera le code si je veux ajouter un enregistrement dans le fichier "eleve" sans que j'obtiennes une erreur de cardinalité.. je ne comprends pas .. et est ce que je peux créer une analyse sans que je fasse des liaisons fichiers (je maitrise tout en programmation) .. quel est le role de ces liaisons tant que je ne fais pas de RAD, je programme tout seul.

Merci à vous tous

Contribution le : 28/01/2006 15:20
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
Bonjour

Peut etre que je n'étais pas clair dans mon premier message, en résumé :
J'ai 2 fichiers : Elève et Cursus
Sont liés : (1,n)-------(1,N)
Comment je peux ajouter un enregistrement dans le fichier ELEVE sans que j'obtiennes une erreur de cardinalité, comme vous voyez si j'ajoute un eleve il doit directement et obligatoirement avoir un cursus.

Je vous demande Messieurs de m'éclaircir ce sujet.. merci

Contribution le : 29/01/2006 11:51
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
C'est encore moi Désolé, je veux simplement vous dire que j'ai effectué des recherches sur le sujet dans ces forum, mais je ne touve pas de réponse sur :
Lorsque la liaison entre 2 fichiers est (1,N) ----(1,N)
Si je tente d'ajouter un enregistrement dans le premier fichier l'erreur d'intégrité se présente, comment faire ?

Contribution le : 29/01/2006 12:53
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Bonjour,

C'est normal, il faut un fichier intermédiaire pour la liaison entre 2 fichiers dont les cardinalités sont 1,N ----- 1,N

Bon dév.,

Totof

Contribution le : 29/01/2006 16:12
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
Bonjour
Bien sur qu'il faut un fichier intermédiaire, WINDEV le propose automatiquement.. mon problème n'est pas là.
Essayes de m'expliquer comment ajouter un enregistrement dans le premier fichier sans avoir d'erreur d'intégrité, comment je ferai ça !?

Mes Fichier :

ELEVE(IDeleve, nom...)
CURSUS(IDcursus,note...)

ELEVE_CURSUS (IDeleve,IDcursus,IDeleve_IDcursus) -- fichier intermédiaire.

Voila.
Merci

Contribution le : 30/01/2006 11:03
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour yssab,

Vous n'avez pas d'obligation d'utilisez un fichier intermédiaire pour les liaisons mais cela fait partie de l'optimisation de la gestion des bases afin d'éviter d'écrire plusieurs fois la meme chose dans une table et d'éviter ainsi des doublons.

Le tout etant que vous sachiez bien ce que voulez faire
Exemple

Fichier Eleves
IdEleve : Identifiant automatique et donc unique

Fichier Classes
IdClasse : Identifiant automatique et donc unique

Sauf erreur de ma part il doit y avoir une erreur d'interpretation dans votre analyse
Le m'explique :
si vous utilisez la relation 1,N....1,N vous ne pourrez jammais ajouter un eleve si vous n'avez pas crée de cursus et vous ne pourrez pas ajouter de cursus si vous n'avez pas créé d'élèves.

Dans cette condition il faut donc comme vous l'avez compris créer un fichier de relation entre ces deux fichiers permettant ainsi de pouvoir créer sans contraintes des élèves et des classes indépendament du fichier relié.

La contrainte de cette technique devient qu'il vous faut a présent manipuler 3 tables pour créer un enregistrement.

Ainsi vous pourrez ajouter des élèves sans avoir de classe liées et ajouter des classes sans avoir d'élèves liés

Les liaisons se feront uniquement au travers de la manipulation du fichier de relation en allant chercher les identifiant adéquantes des deux fichiers eleves et classes

en résumé et en clair
Chaque Elève à au moins un cursus (non) (0,n)
Chaque Cursus à au moins un élève (oui) (1,1)
Chaque classe à un moins un cursus (non) (0,n)
Chaque Cursus à au moins une classe (oui) (1,1)

PS: le RAD gère très bien ces types de liaisons ainsi que les contrôles d'intégritées

Contribution le : 30/01/2006 12:13
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Developpeur WDF
Inscrit:
24/01/2006 13:42
De Chartres
Post(s): 142
Pour 1,n 1,n pas de souci
tu peux créer tes classe et tes eleves separement.
Le tout etant apres de les affecter comme il se doit...

ex: dans tas fenetre un liste deroulante pour les classes,
et pour les eleve un tableau avec case a cocher (coche|Nomeleve)

nomcl est une chaine = comboclasse..valeur
idcl,i,oc,idelev est un entier
si hlitrecherchePremier(Classe,Nom,nomcl) alors
idcl = classe.idclasse
fin
houvre(eleve_classe)
oc = tableoccurence(TableEleve)
pour i=1 a oc
si tableEleve.coche[i] = 1 alors
pour tout eleve avec eleve.nom=Table.nom[i]
idelev=Eleve.ideleve
eleve_classe.ideleve = idelev
eleve_classe.idclasse = idcl
hajoute(eleve_classe)
fin
fin
fin
hferme(eleve_classe)

attention au doublon pour les eleves rajoute le prenom dans ton tableau et dans ton pour tout

Contribution le : 30/01/2006 12:43
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
Bonjour et Merci Drcharly93..

Citation :

Sauf erreur de ma part il doit y avoir une erreur d'interpretation dans votre analyse
Le m'explique :
si vous utilisez la relation 1,N....1,N vous ne pourrez jammais ajouter un eleve si vous n'avez pas crée de cursus et vous ne pourrez pas ajouter de cursus si vous n'avez pas créé d'élèves.


Oui c'est ça mon problème ..

Citation :

Dans cette condition il faut donc comme vous l'avez compris créer un fichier de relation entre ces deux fichiers permettant ainsi de pouvoir créer sans contraintes des élèves et des classes indépendament du fichier relié.

Le fichier est déja crée ..

Citation :

La contrainte de cette technique devient qu'il vous faut a présent manipuler 3 tables pour créer un enregistrement.


Comment ? pouvez-vous me donner une portion de code (exemple ajouter moi un enregistrement je veux ajouter un nouvel élève). Sans que je change la structure de l'analyse.

Citation :

PS: le RAD gère très bien ces types de liaisons ainsi que les contrôles d'intégritées



Meme avec le RAD j'obtiens les fameux fenetres blanches (erreur d'intégralité).

PS: Je ne veux pas en outre utiliser le RAD.

Merci pour votre attention Drcharly93.

Contribution le : 30/01/2006 13:02
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Si vous avez des erreurs d'intégrités avec le rad il faut commencer par regarder les cardinalitées le problème doit se situé à ce niveau

Quand au code pour ajouter un eleve il n'y a aucune contrainte vis à vis du fichier lié puisque la cardinalité est de 0,N donc la seule contrainte d'intégrité à ce niveau se situe au niveau de la suppresion d'un élève et non au niveau de la création.

Vous allez surement rire mais si les cardinalitées sont correctement décrites pour ajouter un nouvel eleve le code est le suivant :

//Code du bouton Ajouter apreès avoir initialisées les valeurs.
SI PAS HAjoute(Eleves) ALors
 Erreur(HErreurInfo())
 RETOUR
Fin


Rien de plus n'est nécessaire puisque la cardinalité di Fichier 'Eleves' (0,N) vers le fichier 'cursus' n'oblige pas a avoir un cursus lié à l'élève au moment de la création de l'élève.

Contribution le : 30/01/2006 13:20
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
OK ..
Je vous tiendrai au courant ..
Merci à vous tous.

Contribution le : 30/01/2006 13:28
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
Bonjour tout le monde ..

Une question à Drcharly93..

Si tu me donne un petit peu de ton temps ça sera un beau cadeau pour moi ..

Un nouveau projet .. une nouvelle analyse ... 02 fichiers à créer exemple (ELEVE et CURSUS )
Condition et cardinalités :
CLASSE
- Chaque éleve a au moin un CURSUS
- Chaque eleve peut Avoir plusieurs CURSUS

CURSUS
- Chaque cursus a au moin un ELEVE
- Chaque CURSUS peut avoir plusieurs ELEVEs

On génère l'analyse avec ces conditions, un fichier de liaison se crée..

On RAD .. on test --- erreur de cardinalité

SOLUTION :
Changer les conditions !!!!!
Est-ce la vrai solution ?????????

Merci pour votre attention.

Contribution le : 01/02/2006 10:45
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Animateur WDF
Inscrit:
17/05/2004 14:21
Post(s): 382
Pourriez-vous donner le message d'erreur complet ?

Herreurinfo(HerrComplet)


Tous vos fichiers sont-ils crées physiquement y compris le fichier de liaison ? (HCreationSiInexistant)

Contribution le : 01/02/2006 14:11
_________________
Mbsl
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
Bonjour mbsl ..

Citation :


Pourriez-vous donner le message d'erreur complet ?



Voila ce que le message affiche :

Dump de l'erreur du module <WD90HF.DLL> <9.00Bwe>
..

Pas de code d'erreur systeme
Pas de message d'erreur systeme

Que s'est-il passé ?
Erreur d'intégrité.

Les cardinalités côté clé primaire (1,-1) entre les rubriques<Eleve.IDeleve> et <Eleve_Curus.IDeleve> ne sont pas respectés.

-infos du debug:
iehf=14028

-Infos attachées :
EIT_LOGICALTABLENAME: <Eleve>
EIT_ITEMNAME: <IDeleve>
EIT_LINKNAME: <Contarainte_Eleve_Cursus>

- Identifiant dans le .err : 70904


Citation :


Tous vos fichiers sont-ils crées physiquement y compris le fichier de liaison ? (HCreationSiInexistant)



Oui, tous mes fichiers sont crées physiquement.

Vous ne pensez pas que je ne peux ajouter un enregistrement dans le fichier ELEVE tant que cet Eleve n'as pas de CURSUS.. et je ne peux ajouter de CURSUS tant que ce CURSUS n'as pas au moin un ELEVE (la LOGIQUE) .. Pratiquement je ne sais quoi faire (en gardant les conditions).

Merci

Contribution le : 02/02/2006 11:37
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Animateur WDF
Inscrit:
17/05/2004 14:21
Post(s): 382
Bonjour,

Vérifier la valeur de Eleve_Curus.IdEleve juste avant l'ajout, elle doit correspondre à un id élève existant.

Contribution le : 02/02/2006 11:57
_________________
Mbsl
Créer un fichier PDF de la contribution Imprimer


Re: Cardinalités
Stagiaire WDF
Inscrit:
28/01/2006 15:06
Post(s): 13
Merci mbsl..

Meme si je supprime les 03 fichiers physiquement.. et redémarrer l'application, les 03 fichiers se créent (vides) pendant l'ajout de mon premier enregistrement la même erreure qui se présente.

Contribution le : 02/02/2006 12:05
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2