Importations données

Importations données - SQL/NoSQL - Programmation

Marsh Posté le 12-07-2011 à 07:34:58    

Bonjour
 
Voici mon probleme
 
j ai deux bases de données, X et Y
 
Chacunes ayant les meme tables et la meme structure, mais ayant des données différentes.
Je dois ajouter les données de Y à X
 
sachant que j ai plusieurs tables liées entre elles tel que:
 
Table User avec un userid (primary key, autoincrement, unique), nom, prénom, etc
table Etudiant, liée a la table User, reprenant notamment le userid, ainsi que fonction, école, etc2
 
Mon probleme est celui ci, ma base de donnée Y est deja bien remplie, je dois ajouter toute ces données a X, donc a la suite de ce qui existe déjà (les données seront donc les meme, mais le userid peut (et doit) etre modifier.
Seulement, dans les reste de ma base de données, plusieurs tables sont liées a ce userid.
 
Comment faire pour que le user id existant dans Y soit remplacé partout par le nouvel userid que chaque élément va recevoir dans X????
 
Suis je assez clair? (sorry je suis débutant en base de données)
 
Merci les amis

Reply

Marsh Posté le 12-07-2011 à 07:34:58   

Reply

Marsh Posté le 12-07-2011 à 07:53:08    

Si les ID doivent etre modifié pendant le transfert il n'y a pas 36 solutions, ca va devoir etre fait a la main et dans le bon ordre.
 
Le plus facil est de modifier a l'avance toutes les ID dans la DB Y pour apres n'avoir qu'a faire un transfert vers X. Il faut les modifier dans l'ordre pour conserver l'integrité et il faudra probablement utiliser des tables temporaire de conversion pour savoir quelle vielle ID correspond a quelle nouvelle ID.

Reply

Marsh Posté le 12-07-2011 à 14:57:24    

Pk pas un script PHP. Il faut qu'à l’exécution, il récupère les lignes de la base Y (grace à une boucle et fetch()), puis remette la ligne dans la base X. Tu mettras une condition: Soit l'ID de la ligne prise est déjà présente dans Y, et dans ce cas tu ajoutes 1, soit l'ID est dispo, et la ligne est entrée. Le script ne devrait pas passer les 100lignes, il sera juste un peu compliqué à mettre en place. Bonne chance !


---------------
Amenez votre pierre à l'édifice ! Un Pixel, Une Couleur.
Reply

Marsh Posté le 13-07-2011 à 07:30:46    

@ Oliiii: comment marche les tables temporaires?
Comment les mettre en place?
 
Merci pour vos reponses en tout cas ;)

Reply

Marsh Posté le 13-07-2011 à 08:37:30    

Une table temporaire dans ce cas ci c'est juste une nouvelle table normale dont tu te débarasseras quand c'est fini.

Reply

Marsh Posté le 13-07-2011 à 08:42:45    

ok, un grand merci ;)

Reply

Marsh Posté le 13-07-2011 à 14:14:46    

avec les triggers y a pas moyen de faire une mise a jour de la base y en verifiant le numid et si deja present changer l id?

Reply

Marsh Posté le 14-07-2011 à 08:17:38    

Le probleme ce n'est pas vraiment de changer l'ID, c'est de garder l'integrité référentielle. Une fois que tu as insere ton enregistrement avec un nouveau ID, comment tu fais pour savoir a quoi lier les enregistrements des autres tables qui en dependent?
 
Ce sera aussi plus lent et probablement plus de boulot que de faire tout en une fois.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed