IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Synchroniser une base locale et une base distante


Sujet :

PHP & Base de données

  1. #41
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Comment identifies-tu tes tuples ?

  2. #42
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Je pensais parcourir tout les champs d'une base et les comparait avec l'autre base
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  3. #43
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    En ce cas, tu ne détecteras pas les mises à jour qui ont été effectuées sur les tuples.

  4. #44
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    that's it's a problem...
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  5. #45
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je veux dire : si tu n'identifies pas la clef primaire et que tu compares le tuple entier, jamais tu ne repèreras les modifications. Tout tuple ayant été modifié sera repéré comme nouvel enregistrement...
    Si, en revanche, tu peux identifier la clef primaire (c'est ce que j'ai fait dans le script dont je t'ai parlé, par exemple), alors tu compareras les tuples en utilisant cet identifiant et ce sera du gâteau.

  6. #46
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par Kirkis
    Je veux dire : si tu n'identifies pas la clef primaire et que tu compares le tuple entier, jamais tu ne repèreras les modifications. Tout tuple ayant été modifié sera repéré comme nouvel enregistrement...
    Si, en revanche, tu peux identifier la clef primaire (c'est ce que j'ai fait dans le script dont je t'ai parlé, par exemple), alors tu compareras les tuples en utilisant cet identifiant et ce sera du gâteau.
    bah si les tuples ont une clé primaire identique dans les deux bases, sauf si c'est un tuple qui a été ajouté...

    il faut que je synchronise la structure et les données je m'en sors pas là...
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  7. #47
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    est-ce que le début est bon ?

    Code : 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
     
    <?php
    //compare les deux bases et renvoye une chaine contenant le dump de la base synchronisée
    function synchronisation($base,$base_compare){
     
    	$liste_tables_base = mysql_list_tables($base);
    	$liste_tables_base_compare = mysql_list_tables($base_compare);
     
    	//traitement des tables
    	if(mysql_num_rows($liste_tables_base) != mysql_num_rows($liste_tables_base_compare)){
    		//si il n'y a pas le meme nombre de tables dans les deux bases je parcours la liste des tables et fait les mises a jour dans $base en n'oubliant pas de vérifier les champs
    	}
    	else{
    		//si il y en a le meme nombre je parcours les listes et vérifie que ce sont les memes
    		for($i=0;$i<mysql_num_rows($liste_tables_base);$i++){
    			for($j=0;$j<mysql_num_rows($liste_tables_base_compare);$j++){
    				if(mysql_tablename($liste_tables_base, $i) == mysql_tablename($liste_tables_base_compare , $j)){
    					//si ce sont les memes je vérifie le nombre de colonne de chaque table
    						//si c'est le meme nombre je vérifie que ce sont les memes
    						//si c'est pas le meem nombre je parcours les deux listes et fait les mises à jour dans $base
    				}
    				else{
    					//si c'est pas les memes je fais les mises à jour dans $base
    				}
     
    			}
    		}	
    	}
    }
     
    ?>
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  8. #48
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Comment puis je récupérer le nombre de champs d'une table ainsi que leur noms sachant que je connais le nom de la table ?
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  9. #49
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $result = mysql_query("SHOW COLUMNS FROM tatable");
     
     
    //récupération du nom des champs
    while($row = mysql_fetch_array($result)) {
        $champ[] = $row['Field'];
    }
     
    //récupération nombre
    count($champ);
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  10. #50
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    merci....

    j'avance petit a petit mais j'avance...
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  11. #51
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Un petit apercu, hésitez pas à la compléter ou donner votre avis

    Code : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?php
    //compare les deux bases et renvoye une chaine contenant le dump de la base synchronisée
    function synchronisation($base,$base_compare){
     
    	$liste_tables_base = mysql_list_tables($base);
    	$liste_tables_base_compare = mysql_list_tables($base_compare);
     
    	//traitement des structure de tables
    	if(mysql_num_rows($liste_tables_base) != mysql_num_rows($liste_tables_base_compare)){
    		//TODO si il n'y a pas le meme nombre de tables dans les deux bases je parcours la liste des tables et fait les mises a jour dans $base en n'oubliant pas de vérifier les champs
    	}
    	else{
    		//si il y en a le meme nombre je parcours les listes et vérifie que ce sont les memes noms de tables
    		for($i=0;$i<mysql_num_rows($liste_tables_base);$i++){
    			for($j=0;$j<mysql_num_rows($liste_tables_base_compare);$j++){
    				if(mysql_tablename($liste_tables_base, $i) == mysql_tablename($liste_tables_base_compare , $j)){
    					//si ce sont les memes je vérifie le nombre de champs de chaque table
    						//récupération du nom des champs
    						$result_base = mysql_query('SHOW COLUMNS FROM '.mysql_tablename($liste_tables_base, $i)
    						while($row = mysql_fetch_array($result_base)) {
    							$champ_base[] = $row['Field'];
    						}
    						$result_base_compare = mysql_query('SHOW COLUMNS FROM '.mysql_tablename($liste_tables_base_compare, $j)
    						while($row = mysql_fetch_array($result_base_compare)) {
    							$champ_base_compare[] = $row['Field'];
    						}
     
    						if(count($champ_base) == count($champ_base_compare)){
    							//si c'est le meme nombre je vérifie que ce sont les memes champs
    							for($k=0;$k<count($champ_base);$k++){
    								for($l=0;$l<count($champ_base_compare);$l++){
    									if($champ[$k] != $champ[$l]){
    										//TODO les noms des champs sont différents donc je mets à jour $base
    									}
    								}
    							}
    						}
    						else{
    							//TODO si c'est pas le meem nombre de champs je parcours les deux listes et fait les mises à jour dans $base
    						}
    				}
    				else{
    					//TODO si c'est pas les memes noms de tables je fais les mises à jour dans $base
    				}
    			}
    		}	
    	}
     
    	//traitement des données des tables
    }
     
    ?>
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  12. #52
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    allez c'est lundi, on s'y remet de bonne heure et de bonne humeur
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  13. #53
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Tu sais, il y a moyen de déterminer quels champs sont clef primaire d'une table, si tant est qu'il y ait une clef primaire. Dans le script dont je t'ai parlé plus haut, je me suis creusé la tête à déterminer quelle est la clef primaire même lorsqu'elle n'est pas définie.
    Sans cette clef, je t'assure que tu vas rapidement avoir des incohérences.

  14. #54
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    J'ai deeja répondu a ta qustion, j'ai une clef primaire a chaque table

    pour l'instant je me bats avec la synchronisation de la structure...
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  15. #55
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Je voudrais vérifier que l'élément de la premiere liste est dans la deuxieme, si non je l'ajoute a la base si oui je passe au second élément de la premiere liste.

    avec ce que j'ai fait j'ai un probleme je parcour toutes ma deuxieme liste avaant d'incrementer la premier donc evidemment a un moment je rentre dans le if et souleve une erreur car j'essaye d'ajouter une table qui existe déjà.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    for($i=0;$i<mysql_num_rows($liste_tables_base_compare);$i++){
    			for($j=0;$j<mysql_num_rows($liste_tables_base);$j++){
    				echo '<br> Table de base_compare : '.mysql_tablename($liste_tables_base_compare, $i);
    				echo '<br> Table de base : '.mysql_tablename($liste_tables_base , $j);
    				if(mysql_tablename($liste_tables_base_compare, $i) != mysql_tablename($liste_tables_base , $j)){
    					echo '<br>differentes<br>';
    					$create= mysql_query("SHOW CREATE TABLE ".mysql_tablename($liste_tables_base_compare, $i)) or die('ERREUR : '.mysql_error());
    					$tableau = mysql_fetch_array($create);
    					$tableau[1] .= ";";
    					mysql_selectdb($base);//selectionne la base
    					mysql_query($tableau[1]) or die('ERREUR 2 : '.mysql_error());
    				}
    			}	
    		}
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  16. #56
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Probleme résolu

    Code : 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
     
    liste_tables_base = mysql_list_tables($base);
    	$liste_tables_base_compare = mysql_list_tables($base_compare);
     
    	//traitement des structure de tables
    	if(mysql_num_rows($liste_tables_base) != mysql_num_rows($liste_tables_base_compare)){
    		//si il n'y a pas le meme nombre de tables dans les deux bases je parcours la liste des tables et fait les mises a jour dans $base
    		for($i=0;$i<mysql_num_rows($liste_tables_base_compare);$i++){
    			$egale = false;
    			for($j=0;$j<mysql_num_rows($liste_tables_base);$j++){
    				if(mysql_tablename($liste_tables_base_compare, $i) == mysql_tablename($liste_tables_base , $j)){
    					$egale = true;
    					break;
    				}
    			}
    			if($egale == false){
    				mysql_selectdb($base_compare);//selectionne la base
    				$create= mysql_query("SHOW CREATE TABLE ".mysql_tablename($liste_tables_base_compare, $i)) or die('<br>ERREUR : '.mysql_error());
    				$tableau = mysql_fetch_array($create);
    				$tableau[1] .= ";";
    				mysql_selectdb($base);//selectionne la base
    				mysql_query($tableau[1]) or die('<br>ERREUR 2 : '.mysql_error());
    			}			
    		}
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  17. #57
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ah tiens, je t'avais mal compris ici :
    Citation Envoyé par schlough
    bah si les tuples ont une clé primaire identique dans les deux bases
    J'avais compris "au cas où" et non "puisque"... Je suis parfois très borné :/

    Si je puis me permettre un conseil : appelle mysql_num_rows() avant chaque boucles et enregistre chaque valeur dans une variable, car tu demandes actuellement à PHP de retrouver chaque valeur à chaque fois. Ce n'est pas très coûteux en temps d'exécution mais bon...

    J'imagine qu'il ne te reste plus qu'à parcourir les tuples de chaque base et, à chacun d'eux, de comparer son existence dans l'une et l'autre table en utilisant la clef.
    Bonne chance pour déterminer si un tuple a été mis à jour et nécessite une modification...

  18. #58
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Voila j'ai un peu optimisé la fonction synchronisation.php faut que je la continue maintenant

    Code : 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
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php
    //compare les deux bases et renvoye une chaine contenant le dump de la base synchronisée
    //on choisit si on veut synchronisé la structure et si on veut synchroniser les données
    function synchronisation($base,$base_compare, $donnees = false,$structure = false){
    	$liste_tables_base = mysql_list_tables($base);
    	$liste_tables_base_compare = mysql_list_tables($base_compare);
     
    	if($structure == true){
    		//traitement des structure de tables
    		//je prends l'élément de la premiere base et je regarde si il est dans la deuxième
    		for($i=0;$i<mysql_num_rows($liste_tables_base);$i++){
    			$egale = false;
    			for($j=0;$j<mysql_num_rows($liste_tables_base_compare);$j++){
    				if(mysql_tablename($liste_tables_base, $i) == mysql_tablename($liste_tables_base_compare, $j)){
    					$egale = true;
    					break;
    				}
    			}
    			if($egale == false){
    				//la table n'existe pas dans les deux bases, je la crée donc dans $base_compare
    				mysql_selectdb($base);//selectionne la base
    				$create= mysql_query("SHOW CREATE TABLE ".mysql_tablename($liste_tables_base, $i)) or die('<br>ERREUR : '.mysql_error());
    				$tableau = mysql_fetch_array($create);
    				$tableau[1] .= ";";
    				mysql_selectdb($base_compare);//selectionne la base
    				mysql_query($tableau[1]) or die('<br>ERREUR 2 : '.mysql_error());
    			}
    			else{
    				//la table existe dans les deux bases, je vérifie si elle a la meme structure
     
    			}		
    		}
    	}
     
    	if($structure == true){
    		//traitement des données de tables
    	}
     
    }
    ?>
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  19. #59
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par Kirkis
    Ah tiens, je t'avais mal compris ici :
    Citation Envoyé par schlough
    bah si les tuples ont une clé primaire identique dans les deux bases
    J'avais compris "au cas où" et non "puisque"... Je suis parfois très borné :/

    Si je puis me permettre un conseil : appelle mysql_num_rows() avant chaque boucles et enregistre chaque valeur dans une variable, car tu demandes actuellement à PHP de retrouver chaque valeur à chaque fois. Ce n'est pas très coûteux en temps d'exécution mais bon...

    J'imagine qu'il ne te reste plus qu'à parcourir les tuples de chaque base et, à chacun d'eux, de comparer son existence dans l'une et l'autre table en utilisant la clef.
    Bonne chance pour déterminer si un tuple a été mis à jour et nécessite une modification...
    Pour l'instant je suis toujours dans les structures, il faut que quand une table existe dans les deux bases je vérifie si elle a la meme structure, je pense voir bien optimisé la non, qu'en penses tu ?

    Je veux faire un truc qui tourne nickel sur les structures et apres je m'attaquerais aux données, mais je veux vraiment faire quelque chose de bien fait et réutilisable facilement.
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  20. #60
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Perso, j'aurais plutôt adopté un truc genre :
    • parcours des tables de la BDD1
      [list:139dc044fd]
    • recherche du nom de la table dans la BDD2
      [list:139dc044fd]
    • si inexistant : créer puis insérer les données
    • si existant : comparer la structure puis les tuples dans les 2 BDD
    [/list:u:139dc044fd][*]parcours des tables de la BDD2
    • comparer les tuples de la table dans les 2 BDD (les structures de tables sont déjà synchronisées)
    [/list:u:139dc044fd]

Discussions similaires

  1. Choix entre une base local ou la base distante
    Par bm10 dans le forum WinDev
    Réponses: 1
    Dernier message: 23/01/2015, 08h08
  2. Réponses: 82
    Dernier message: 05/02/2011, 14h34
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24
  5. mise à jour d'une BDD locale sur un serveur distant
    Par jive dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 22/08/2005, 21h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo