Vous n'êtes pas identifié(e).
Bonsoir,
Je possède 2 tables comme ceci:
table effectifs:
et la table parcours comme ceci:
Dans la table parcours, je souhaiterais rajouter le champ id_joueur correspondant à la table effectifs, ce qui donnerait ceci:
Mes 2 tables sont déjà remplies et contiennent des milliers d'enregistrements, c'est pour celà que je souhaite faire la modif autrement qu'à la main.
Est-ce possible directement avec Mysql ?
Merci d'avance de votre aide
Hors ligne
Bonjour,
Cela n'est pas ainsi qu'il faut procéder. Il te faut créer une table de jonction avec en clé primaire, une clé composite : id_joueur + id_parcours. Cela sera par conséquent une table qui reliera pour chaque joueur un parcours et en assurera l'unicité. Tu aurais du procéder de même pour tes clubs... Mais bon c'est aussi comme cela que l'on apprends les choses.
++
Dernière modification par Jc (24-09-2011 20:13:00)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Premièrement oui c'est possible de faire ça de manière semi-automatique. Mais comme l'a dit jsutement dit grand maître Jc, il faut revoir le schéma de ta base de données.
Commence par faire une sauvegarde complète de la base ou du moins des tables concernées.
Je ne suis pas sûr q'il faille faire nécessairement faire une table de jointure mais pour le moment tu peux faire quelque chose comme ça :
table effectifs
id_joueur int(9) auto_increment,
nom varchar(255)
prenom varchar(255)
nationalite varchar(255)
taille float
poste varchar(255)
date_de_naissance datetime
saison varchar(255)
id_club int(9)
table parcours
id int(9) auto_increment,
id_joueur int(9),
id_club int(9)
saison varchar(255)
table clubs
id int(9) auto_increment,
nom
// autres infos, adresses,...
L'avantage de ce schéma est de ne pas dupliquer d'informations. Par exemple les noms des joueurs ne sont que dans la table effectifs, le nom des clubs que dans la table clubs,...
Est-ce que tu veux de l'aide pour re-remplir tes tables et mettre à jour les requêtes ?
Hors ligne
Bonjour,
J'ai réussi à faire ce que je voulais avec un petit programme en php comme ceci:
J'ai rajouté un champ id_joueur dans la table lnv_parcours en ensuite, j'ai lancé ce petit programme
Bon, ce n'est ni optimisé ni "joli" mais ça a eu le mérite de marcher et c'était pour mes besoins personnels, pas pour faire tourner mon programme ensuite.
Mais pour citer le message de Nicolas, effectivement, quand je regarde mes 3 tables concernées, on voit bien que des informations sont dupliquées. Je vais optimiser tout ça.
Merci de votre aide.
Dernière modification par Sq78 (25-09-2011 14:17:32)
Hors ligne
Bonsoir,
Désolé j'avais oublié de lire ta réponse...
Ce que tu viens de faire en PHP je n'en vois pas l'intérêt dans le sens où il est facile de faire la même chose via une requête MySQL. Pourquoi? Parce que ta méthode est incorrecte elle ne gère pas les homonymies. L'intérêt de passer par PHP aurait été justement de le gérer. Pour le faire en MySQL avec gestion des homonymies, il faut prendre un jeu de critères identifiant de manière unique deux joueurs homonymes, et n'ayant pas cette info on ne peut te proposer de solution viable de requête.
Cependant, revoir la structure de ta DB reste le meilleur conseil que l'on puisse te donner sur ce forum.
++
Dernière modification par Jc (09-11-2011 00:17:19)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
Effectivement, je pense avoir compris mon erreur (Qui heureusement n' pas d'incidence parce qu'aucun jour a le même nom/prenom)
J'ai encore pas mal de choses à apprendre. D'ailleurs, c'est l'objet de mon nouveau post :-)
Hors ligne