Modification en masse

Signaler
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour,

j'ai une petite question , c'est comment faire une relation entre plusieurs tables d'une bdd sql afin d'une modification de la même information, je m'explique :

dans mes tables j'ai un même champ appelé (PAYS), ce que je veux c'est quand je modifie ce champs dans une table la mise à jour se ferai dans les autres tables automatiquement sans que je modifie mon champ dans chaque table séparément.

j'espère que j'ai bien expliqué mon problème et merci d'avance.

11 réponses

Messages postés
14765
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 janvier 2021
151
Je pense qu'un exemple ou plus d'information concernant le structure de ta base serait bienvenu.
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

bonjour Nhenry,
comme d'habitude vous êtes toujours ici pour nous soutenir.

j'ai 3 tables -->

- Client :
(ID, nom, prénom, adresse, ville, pays)
- facture :
(ID, nom, prenom, adresse, ville, pays, numfacture, date)
- suivi general :
(ID, nom, prenom, adresse, ville, pays, numfacture, date, datelivraison, datemodif)


dans les 3 tables j'ai le même champ nommé (PAYS)
ce que je veux c'est quand je modifie le champ (PAYS) dans la table CLIENT la mise à jour du même champs se fera dans les autres tables.


Messages postés
14765
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 janvier 2021
151
Donc, tu as une redondance d'information.
Une mise en forme plus logique serait (je pense ) :
- Client :
(ID, nom, prénom, adresse, ville, pays)
- facture :
(ID, IdClient, numfacture, date)
- suivi general :
(ID, IdFacture, datelivraison, datemodif)

Et là plus de soucis.
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

bonjour,
pour une manipulation ultérieure j'ai besoin de toutes ces informations dans mes tables. c'est pour ça qu'il y a cette redondance
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonjour

Si tu modifies pays il faut aussi modifier ville non ?
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

bonjour,
si j'arrive à modifier le pays dorénavant je peux modifier ce que je veux

merci.
Messages postés
14765
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 janvier 2021
151
Peut être voir avec des triggers (mais ça dépend de ton SGBDR).
Sinon, tu peux le faire via ton logiciel (retrouver les lignes à modifier).
Messages postés
31213
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2021
342
Bonjour,

pour une manipulation ultérieure j'ai besoin de toutes ces informations dans mes tables. c'est pour ça qu'il y a cette redondance
Quelque soit le "besoin" que tu as.... lors de la conception/manipulation d'une BDD .. si il y a redondance d'informations... c'est que la BDD est mal construite !

La réponse de NHenry http://codes-sources.commentcamarche.net/forum/affich-10033417-modification-en-masse#3 est sans aucun doute la meilleur proposition à suivre !


Si par la suite tu as besoin de récupérer "toutes" ces informations... il te suffit de faire des jointures.... Nul besoin de les avoir en triple exemplaires .....



Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

bonjour,

je vous remercie infiniment pour vos réponses, je vais essayé de suivre vos recommandations.

cordialement,

Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

bonjour,
je reviens vers vous pour reprendre notre discussion, je réexplique, alors disant que j'ai deux tables CLIENT et FACTURE :

alors dans la table client j'ai les champs ( ID - nom - adresse)
dans la table facture ( ID - nom - adresse - numfacture)

- dans la table CLIENT je stock les infos clients
- dans la table FACTURE je stock mes factures

alors la contrainte que je veux traiter c'est si un utilisateur lors de la saisie s'est trompé dans le nom d'un client et que déjà des factures ont été saisies et stockées dans la table FACTURE et qu'après il s'est avéré que le nom du client est erroné.
à ce moment quand je rectifie le nom du client dans la table CLIENT aussi il se rectifie dans la table FACTURE.


Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonjour
Comme te l'a dit NHenry tu as une redondance d'information.
les champs de la table client doivent etre
ID-CLIENT : PRIMARY KEY
Nom etc
dans la table facture
id facture clé unique
numfacture
ID client
tu ne dois pas avoir les champs nom - adresse
mais lié à la table client par ID-CLIENT

A la phase initiale tes tableaux sont vides.
On remplit le tableau client
ex ID Client le numéro d'identité du client ex 123456
nom Dubois
Prenom Paul

Quand on remplit la table facture correspondant
le idclient doit etre le meme que celui de la table client 123456

alors la contrainte que je veux traiter c'est si un utilisateur lors de la saisie s'est trompé dans le nom d'un client

justement la saisi doit etre fait par le id client et non par son nom
et prénom