Bonjour
je te propose ceci Football.zip
je poste l'image pour des éventuelles critiques afin d'améliorer la base.
Bonjour
je te propose ceci Football.zip
je poste l'image pour des éventuelles critiques afin d'améliorer la base.
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Bonjour Binbin,
J'avais évidemment subodoré que cela concernait la CM 2018. Et surtout que l'ampleur de la tâche ne t'apparaissait pas clairement.
Je voulais donc te faire exprimer le but de ta demande. Modeste comme je le croyais ou exhaustif comme illustré en virtuose par un expert étoilé.
J'espère que cela ne te dégoutera pas d'Access et, s'il s'agit de te familiariser avec le logiciel, attaque-toi alors à des sujets moins vastes que tu maitriseras mieux.
Tout en profitant sur ce site des vastes connaissances étalées par certains experts.
Et de la plus humble expérience d'intervenants plus orientés vers la pédagogie.
Je quitte donc cette coupe après avoir été battu à plate couture dans la phase éliminatoire!
Bonne chance en phase finale!
Le Migge
- On ne peut apprendre au crabe à marcher droit (Aristophane)
- Si un jour tu te sens inutile et déprimé, souviens-toi : un jour tu étais le spermatozoïde le plus rapide de tous. (Coluche)
Je vous remercie pour votre aide.
Je ne cherche pas à faire une base de données comme illustrée par fsmrel.
Ne vous inquiétais pas ! Ca ne va pas me dégouter d'Access.
Cordialement.
As-tu jeté un coup d'oeil sur ce que je t'ai proposé?
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Je vous remercie pour votre aide.
Je me suis inscrit sur ce site car je manque d'expérience sur Access.
J'ai appris à l'utiliser au lycée... ça fait plus de 20 ans en arrière.
J'apprécie énormément que vous m'ayez envoyé le fichier.
Cordialement.
Alors penses-y à l'étape suivante s'il n'y a pas d'observation. Création des formulaires et autres..
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Salut,
Je me permets l'intrusion. Il manquerait, mais à vérifier, une association entre Rencontre, Action et Joueur afin que Binbin puisse saisir les actions de la rencontre. REALISER (idrencontre, idaction, idjoueur, dateaction, heureaction)
Question pour saisir les buts de la rencontre pourquoi une relation 1:N ? Pourquoi ne pas créer une table (N:N) MARQUER (idrencontre, idjoueur, datebut, heurebut)
@+
"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
"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
Effectivement si on souhaite noter toutes les actions posées par un joueur on va créer la table Action(ID_Action, nom_Action,.. ) ainsi qu'une table Realise(ID_Realise, ID_Joueur, ID_Action, minute)
En ce qui concerne ta question, la relation 1-N, dans la seule raison qu'un joueur peut marquer 0 ou n but au cours d'une rencontre et qu'un but est marqué par un et un seul joueur, d'où la Création d'une clef étrangères ID_Joueur dans la table But (cardinalité max vers cardinalité min).
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Dans la table Marquer, datebut ne sert à rien puisque le but est marqué le jour de la rencontre qu'on retrouve dans la table Rencontre.
C'est pareil, pour heurebut qu'on retrouve dans la table But.
Merci pour votre aide.
Cordialement.
MARQUER (idrencontre, idjoueur, datebut, heurebut) est une clé composée. Donc si pour une même rencontre un même joueur marque plusieurs buts vous ne pouvez l'enregistrer sous cette forme MARQUER (idrencontre, idjoueur). Alors que sous cette forme MARQUER (idrencontre, idjoueur, datebut, heurebut) vous le pouvez. Pour info, date et heure, sont en mode valeur par défaut Now().
"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
Bonsoir,
Exact, mais si le diagramme de référence est celui proposé par bertiny, on y observe qu’un joueur peut marquer plusieurs buts au cours d’une rencontre.
@ bertiny
Dans votre table BUT, le triplet {Id_Joueur, ID_Rencontre, minute_but} devrait faire l’objet d’une clé candidate (index unique dans le cas d’ACCESS), sinon au cours d’une rencontre donnée, un joueur pourrait marquer plusieurs buts dans la même minute de jeu.
Toujours par référence à votre diagramme, comment savoir qu’un joueur a participé à une rencontre s’il n’a pas marqué de but au cours de celle-ci ? (sous réserve que Binbin4131 le souhaite).
Prenez-vous en compte les buts que les joueurs ont marqué contre leur camp ? (sous réserve que Binbin4131 le souhaite).
Comment interdisez-vous que lors d’une rencontre opposant une équipe A et une équipe B, c’est un joueur d’une équipe C qui a marqué un but ?
Pouvez-vous préciser ce qu’est pour vous une phase ? (1/8e, etc.) ?
Comment distinguez-vous les matchs de poules et les matchs de phase finale ?
De mon côté (voyez mon diagramme initial), j’ai ajouté une colonne Periode dans l’en-tête de la table BUT, car si un but est marqué par exemple à la 47e minute, il faut savoir si c’est pendant le temps réglementaire (2e mi-temps) ou pendant le temps additionnel de la 1re mi-temps.
Je propose une version MySQL Workbench « à la Access » de mon diagramme, mais je trouve gênant qu’on ne puisse pas faire la différence entre une bijection et une injection (cas par exemple de l’association entre PROLONGATION et TIRS_AU_BUT), en tout cas je n’ai aucune bijection. Bref il est pénalisant qu’ACCESS ne permette pas de représenter les cardinalités minimales.
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
Bonjour
Pour répondre à quelques unes des questions posées, je commence par noter que ce modèle que j'ai proposé n'est pas parfait mais à parfaire comme je l'ai signaler dans mon post. Il se doit de s'adapter alors aux besoins de notre cher ami.
Bien vu fsmrel, il faut simplement créer une table de jonction entre rencontre et joueur. Car un joueur peut participer à 0 ou plusieurs matchs et dans un match on retrouve plusieurs joueurs. On aura comme tu l'as bien proposé mais le problème c'est que "c'est pas tout le monde qui analyse facilement le modèle relationnel"comment savoir qu’un joueur a participé à une rencontre s’il n’a pas marqué de but au cours de celle-ci ?
Participe(ID_Participe, ID_Joueur, ID_Rencontre)
Question résolu ci-dessus.Comment interdisez-vous que lors d’une rencontre opposant une équipe A et une équipe B, c’est un joueur d’une équipe C qui a marqué un but ?
Phase prend pour valeur 16e (phase de poules), 8e 1/4, 1/2, finale.Pouvez-vous préciser ce qu’est pour vous une phase ? (1/8e, etc.) ?
question répondue ci-dessus.Comment distinguez-vous les matchs de poules et les matchs de phase finale ?
Bon débat à tous.
Cordialement
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Bonsoir,
On est d’accord.
Peut-être, mais on est quand même dans le sous-forum Modélisation, et un triplet d’attributs se lit quand même sans problème. En l’occurrence, il suffit de l’interpréter en tant que prédicat :
Le joueur ID_Joueur participe à la rencontre ID_Rencontre de type ID_Participe
Etant entendu que l’attribut ID_Participe doit seulement permettre de distinguer les matchs de poule des matchs de la phase finale (par exemple ID_Participe = 1 pour les matchs de poule, ID_Participe = 2 pour les suivants).
Ça n’est pas résolu. A titre de contre-exemple, sur la base de votre diagramme :
Le joueur j5 fait partie de l’équipe e5, mais a marqué un but lors de la rencontre opposant les équipes e3 et e4.
∎JOUEUR {ID_Joueur ID_Equipe ...} EQUIPE {ID_Equipe ...} j1 e1 e1 j2 e1 e2 j3 e2 e3 j4 e3 e4 j5 e5 e5 BUT {ID_But ID_Joueur ID_Rencontre} PARTICIPE {ID_Participe ID_Joueur ID_Rencontre} b1 j5 r2 p1 j4 r1 p2 j1 r2 RENCONTRE{ID_Rencontre ID_EquipeA ID_EquipeB ...} r1 e1 e2 r2 e3 e4
Maintenant, il est un point sur lequel nous sommes tous les deux défaillants au vu de nos diagrammes respectifs. En effet, rien n’y interdit que deux équipes se rencontrent en match de poule, bien que n’appartenant pas au même groupe. Utilisant volontiers PostgreSQL, je mets mettre oeuvre la clause DEFERRED pour la clé étrangère qui dans la table RENCONTRE_GROUPE permet de retarder le contrôle de l’intégrité référentielle par rapport à la table RENCONTRE, et je mets en oeuvre un trigger obligeant cette fois-ci les équipes à faire partie du même groupe lors donc des matchs de poule.
Néanmoins, les SGBD n’offrant pas tous la possibilité du contrôle différé à l’aide de la clause DEFERRED (pourtant conforme à la norme SQL depuis 25 ans), j’utiliserai donc (comme vos le faites) une association entre EQUIPE et GROUPE.
Dans ces conditions, et à titre indicatif, pour celui qui pratique SQL, et en conformité avec la norme SQL, le contrôle est cette fois-ci assuré par la contrainte RENCONTRE_CHK02 ci-dessous, à l’occasion de la déclaration de la table RENCONTRE :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 CREATE TABLE RENCONTRE ( EquipeAId INT NOT NULL , EquipeBId INT NOT NULL , RencontreId INT NOT NULL , EquipeAbuts SMALLINT NOT NULL , EquipeBbuts SMALLINT NOT NULL , RencontreJour DATE NOT NULL , RencontreHeure TIME NOT NULL , ArbitreId INT NOT NULL , StadeId INT NOT NULL , CONSTRAINT RENCONTRE_PK PRIMARY KEY (EquipeAId, EquipeBId, RencontreId) , CONSTRAINT RENCONTRE_CHK01 CHECK (RencontreId IN (1, 2)) -- 1 : match de poule, 2 = phase finale , CONSTRAINT RENCONTRE_EQUIPE_FKA FOREIGN KEY (EquipeAId) REFERENCES EQUIPE (EquipeId) , CONSTRAINT RENCONTRE_EQUIPE_FKB FOREIGN KEY (EquipeBId) REFERENCES EQUIPE (EquipeId) , CONSTRAINT RENCONTRE_ARBITRE_FK FOREIGN KEY (ArbitreId) REFERENCES ARBITRE (ArbitreId) ON UPDATE CASCADE , CONSTRAINT RENCONTRE_STADE_FK FOREIGN KEY (StadeId) REFERENCES STADE (StadeId) ON UPDATE NO ACTION , CONSTRAINT RENCONTRE_CHK02 CHECK (NOT EXISTS (SELECT * FROM RENCONTRE AS r JOIN EQUIPE AS a ON r.EquipeAId = a.EquipeId JOIN EQUIPE AS b ON r.EquipeBId = b.EquipeId WHERE RencontreId = 1 AND a.GroupeId <> b.GroupeId ) ) ) ;
Cela dit, même PostgreSQL ne permet pas (encore) de coder une requête (SELECT) dans une contrainte, on doit donc déporter celle-ci dans un trigger (concept connu au demeurant d’ACCESS).
Je n’insisterai pas sur les prolongations et leurs buts, les buts contre son camp et les tirs au but, à moins que Binbin4131 y tienne (je garde ça au chaud). Je fais quand même observer que si on s’intéresse aux buts marqués par un joueur, il n’est pas inutile de savoir si ça n’était pas contre son camp...
Un diagramme
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
Je vous remercie pour votre aide.
Je m'aperçois que c'est trop compliqué.
Je laisse tomber.
Bonne continuation.
Cordialement.
En réalité tu abandonnes pour rien. Tu aurais dû améliorer ce que je t'ai proposé au fur et à mesure qu'on émet des idées qui vont à ta convenance. Alors si telle est ta décision on n'y peut rien.
Cordialement
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Bonsoir,
Binbin4131, ne baissez pas les bras. D’accord, les diagrammes que j’ai proposés peuvent rebuter, car ils prennent en compte des contraintes du genre « Un joueur de l’équipe C ne peut pas marquer au cours d’une rencontre entre les équipes A et B ». Mais peut-être existe-t-il une alternative, en garantissant les contraintes non plus directement dans les tables, mais par exemple à l’aide de listes déroulantes : lors de la saisie d’un but, présenter seulement la liste des joueurs des équipes A et B.
Bertiny, Claude Leloup, Tofalu, f-leb et plein d’autres devraient pouvoir vous conseiller sur les moyens propres à Access pour arriver à une solution.
Mais bordez bien votre besoin, au moyen des règles de gestion des données, en précisant par exemple si pour une rencontre le fait qu’il y a eu séance de tirs au buts est à prendre en compte ou non, même chose pour le nom de l’arbitre, celui du stade, etc.
Le diagramme proposé par Bertiny pourrait servir de référence pour prendre un nouveau départ.
Bon courage.
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
fsmrel et bertiny,
J'arrête...
Avant de demander de l'aide, je ne pensais pas que ça soit aussi compliqué.
Je vous remercie quand même.
Cordialement.
Entendu
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager