Bonjour,
Je voudrais implémenter dans mon appli un système d'archivage "sélectif" des
données. Par exemple permettre à l'utilisateur d'archiver tous les documents
d'un client antérieurs à une date donnée. A votre avis, quel est le meilleur
moyen pour y arriver ? Est ce, par exemple, en créant toutes les tables
nécessaires vides en ensuite en recopiant les données une à une ou
existe-t-il un système plus pratique, notamment grace au langage sql ?
Faut-il envisager une gestion de répertoires dans lesquels on stockerait les
archives (mais dans ce cas, comment procéder avec une base relationnelle
comme MySQL) ? Par la même occasion, peut on raisonnablement envisager un
système de restauration ? etc...
Pour information, mon appli utilise une centaine de tables, bien sûr liées
entre elles par de multiples clés.
En somme j'aurais besoin de vos avis pour avoir un début de piste qui ne me
mène pas dans une impasse.
Merci à tous
"I.G.LOG" a écrit dans le message de news:49ec90ff$0$12645$
Bonjour, Je voudrais implémenter dans mon appli un système d'archivage "sélectif" des données. Par exemple permettre à l'utilisateur d'archiver tous les documents d'un client antérieurs à une date donnée. A votre avis, quel est le meilleur moyen pour y arriver ?
des script SQL reprenant toutes les tables concernées par la sauvegarde dans un script par exemple les données commande et ligne de commandes qui vont avec
Est ce, par exemple, en créant toutes les tables nécessaires vides en ensuite en recopiant les données une à une ou existe-t-il un système plus pratique, notamment grace au langage sql ?
a toi de voir si tu veux aussi sauvé la strucutre des tables en mySQL le fait de pouvoir faire create table Matable if notExists evite au script de ce planter sur la creation (sinon prevoir le cas)
Faut-il envisager une gestion de répertoires dans lesquels on stockerait les archives (mais dans ce cas, comment procéder avec une base relationnelle comme MySQL) ?
difficile mais pas impossible, mais c'est du pur mySQL pour manipuler correctement les fichiers bases mais cela enleve le fait d'avoir un client seul dans la sauvegarde
Par la même occasion, peut on raisonnablement envisager un système de restauration ? etc...
avec les fichiers script tu peux prevoir aussi un delete ou agir d'une certaine façon suivant si la ligne existe deja ou non avec les commandes de mySQL il y a des options comme replace ou alors faire un delete avant dans une meme transaction avec le script
Pour information, mon appli utilise une centaine de tables, bien sûr liées entre elles par de multiples clés. En somme j'aurais besoin de vos avis pour avoir un début de piste qui ne me mène pas dans une impasse.
j'utilise ce mecanisme avec les bases SQLite (et mySQL) ou je sauve en script avec un delete devant. pour les sauvegardes particulieres je propose l'option effacer avant les commandes de meme N° , ou alors les remplacer ou alors ne rien faire c'et au choix. le script sera modifié en consequence. la restauration devient simple lire le script et executer les requetes.
Merci à tous
Bon dev @+
Bonjour,
"I.G.LOG" <iglog@free.fr> a écrit dans le message de
news:49ec90ff$0$12645$ba4acef3@news.orange.fr...
Bonjour,
Je voudrais implémenter dans mon appli un système d'archivage "sélectif"
des données. Par exemple permettre à l'utilisateur d'archiver tous les
documents d'un client antérieurs à une date donnée. A votre avis, quel est
le meilleur moyen pour y arriver ?
des script SQL reprenant toutes les tables concernées par la sauvegarde
dans un script par exemple les données commande et ligne de commandes qui
vont avec
Est ce, par exemple, en créant toutes les tables nécessaires vides en
ensuite en recopiant les données une à une ou existe-t-il un système plus
pratique, notamment grace au langage sql ?
a toi de voir si tu veux aussi sauvé la strucutre des tables
en mySQL le fait de pouvoir faire create table Matable if notExists evite
au script de ce planter
sur la creation (sinon prevoir le cas)
Faut-il envisager une gestion de répertoires dans lesquels on stockerait
les archives (mais dans ce cas, comment procéder avec une base
relationnelle comme MySQL) ?
difficile mais pas impossible, mais c'est du pur mySQL pour manipuler
correctement les fichiers bases
mais cela enleve le fait d'avoir un client seul dans la sauvegarde
Par la même occasion, peut on raisonnablement envisager un système de
restauration ? etc...
avec les fichiers script tu peux prevoir aussi un delete ou agir d'une
certaine façon suivant si la ligne existe deja ou non
avec les commandes de mySQL il y a des options comme replace ou alors faire
un delete avant dans une meme transaction avec le script
Pour information, mon appli utilise une centaine de tables, bien sûr liées
entre elles par de multiples clés.
En somme j'aurais besoin de vos avis pour avoir un début de piste qui ne
me mène pas dans une impasse.
j'utilise ce mecanisme avec les bases SQLite (et mySQL) ou je sauve en
script avec un delete devant. pour les sauvegardes particulieres je propose
l'option effacer avant les commandes de meme N° , ou alors les remplacer ou
alors ne rien faire c'et au choix. le script sera modifié en consequence. la
restauration devient simple lire le script et executer les requetes.
"I.G.LOG" a écrit dans le message de news:49ec90ff$0$12645$
Bonjour, Je voudrais implémenter dans mon appli un système d'archivage "sélectif" des données. Par exemple permettre à l'utilisateur d'archiver tous les documents d'un client antérieurs à une date donnée. A votre avis, quel est le meilleur moyen pour y arriver ?
des script SQL reprenant toutes les tables concernées par la sauvegarde dans un script par exemple les données commande et ligne de commandes qui vont avec
Est ce, par exemple, en créant toutes les tables nécessaires vides en ensuite en recopiant les données une à une ou existe-t-il un système plus pratique, notamment grace au langage sql ?
a toi de voir si tu veux aussi sauvé la strucutre des tables en mySQL le fait de pouvoir faire create table Matable if notExists evite au script de ce planter sur la creation (sinon prevoir le cas)
Faut-il envisager une gestion de répertoires dans lesquels on stockerait les archives (mais dans ce cas, comment procéder avec une base relationnelle comme MySQL) ?
difficile mais pas impossible, mais c'est du pur mySQL pour manipuler correctement les fichiers bases mais cela enleve le fait d'avoir un client seul dans la sauvegarde
Par la même occasion, peut on raisonnablement envisager un système de restauration ? etc...
avec les fichiers script tu peux prevoir aussi un delete ou agir d'une certaine façon suivant si la ligne existe deja ou non avec les commandes de mySQL il y a des options comme replace ou alors faire un delete avant dans une meme transaction avec le script
Pour information, mon appli utilise une centaine de tables, bien sûr liées entre elles par de multiples clés. En somme j'aurais besoin de vos avis pour avoir un début de piste qui ne me mène pas dans une impasse.
j'utilise ce mecanisme avec les bases SQLite (et mySQL) ou je sauve en script avec un delete devant. pour les sauvegardes particulieres je propose l'option effacer avant les commandes de meme N° , ou alors les remplacer ou alors ne rien faire c'et au choix. le script sera modifié en consequence. la restauration devient simple lire le script et executer les requetes.
Merci à tous
Bon dev @+
I.G.LOG
Bonjour Firetox
des script SQL reprenant toutes les tables concernées par la sauvegarde dans un script par exemple les données commande et ligne de commandes qui vont avec
si je comprend bien un script contient plusieurs commandes SQL (ou requetes plutot) ?! Dans ce cas, comment l'exécuter sous windev ?
a toi de voir si tu veux aussi sauvé la strucutre des tables en mySQL le fait de pouvoir faire create table Matable if notExists evite au script de ce planter sur la creation (sinon prevoir le cas)
si j'utilise create table, la base MySQL va s'alourdir avec des données dont on n'a pas forcement besoin. A moins de créer une autre base nommée "sauvegarde" par exemple. C'est le principe ?
difficile mais pas impossible, mais c'est du pur mySQL pour manipuler correctement les fichiers bases mais cela enleve le fait d'avoir un client seul dans la sauvegarde
En fait, je voudrais pouvoir cumuler plusieurs clients dans ces tables; pour créer une sauvegarde annuelle par exemple.
...
alors ne rien faire c'et au choix. le script sera modifié en consequence. la restauration devient simple lire le script et executer les requetes.
dans ce cas le script doit etre construit dynamiquement ?
Encore merci
Bonjour Firetox
des script SQL reprenant toutes les tables concernées par la sauvegarde
dans un script par exemple les données commande et ligne de commandes qui
vont avec
si je comprend bien un script contient plusieurs commandes SQL (ou requetes
plutot) ?! Dans ce cas, comment l'exécuter sous windev ?
a toi de voir si tu veux aussi sauvé la strucutre des tables
en mySQL le fait de pouvoir faire create table Matable if notExists evite
au script de ce planter sur la creation (sinon prevoir le cas)
si j'utilise create table, la base MySQL va s'alourdir avec des données dont
on n'a pas forcement besoin. A moins de créer une autre base nommée
"sauvegarde" par exemple. C'est le principe ?
difficile mais pas impossible, mais c'est du pur mySQL pour manipuler
correctement les fichiers bases
mais cela enleve le fait d'avoir un client seul dans la sauvegarde
En fait, je voudrais pouvoir cumuler plusieurs clients dans ces tables; pour
créer une sauvegarde annuelle par exemple.
...
alors ne rien faire c'et au choix. le script sera modifié en consequence.
la restauration devient simple lire le script et executer les requetes.
dans ce cas le script doit etre construit dynamiquement ?
des script SQL reprenant toutes les tables concernées par la sauvegarde dans un script par exemple les données commande et ligne de commandes qui vont avec
si je comprend bien un script contient plusieurs commandes SQL (ou requetes plutot) ?! Dans ce cas, comment l'exécuter sous windev ?
a toi de voir si tu veux aussi sauvé la strucutre des tables en mySQL le fait de pouvoir faire create table Matable if notExists evite au script de ce planter sur la creation (sinon prevoir le cas)
si j'utilise create table, la base MySQL va s'alourdir avec des données dont on n'a pas forcement besoin. A moins de créer une autre base nommée "sauvegarde" par exemple. C'est le principe ?
difficile mais pas impossible, mais c'est du pur mySQL pour manipuler correctement les fichiers bases mais cela enleve le fait d'avoir un client seul dans la sauvegarde
En fait, je voudrais pouvoir cumuler plusieurs clients dans ces tables; pour créer une sauvegarde annuelle par exemple.
...
alors ne rien faire c'et au choix. le script sera modifié en consequence. la restauration devient simple lire le script et executer les requetes.
dans ce cas le script doit etre construit dynamiquement ?
Encore merci
Firetox
Bonjour,
si je comprend bien un script contient plusieurs commandes SQL (ou requetes plutot) ?! Dans ce cas, comment l'exécuter sous windev ?
exactement ensuite soit ut as un acces qui peux executer plusieurs requete (mySQL4WD en version 2.002) ou alors prendre chaque ligne (du moins separé par ; comme une requete et tu l'execute ou encore envoyer le fichier en ligne de commande a mySQL
si j'utilise create table, la base MySQL va s'alourdir avec des données dont on n'a pas forcement besoin. A moins de créer une autre base nommée "sauvegarde" par exemple. C'est le principe ?
l'interet d'avoir le create table dans la sauvegarde est que tu peux executer le script dans une base vide ton fichier script peux avoir par exemple :
CREATE TABLE parametres (Code_ID CHAR(10) NOT NULL , Libelle CHAR(50) ,Texte CHAR(255) ,Numerique INTEGER ,Date DATETIME ,Heure TIME ,Param_ID CHAR(50) NOT NULL ,VDecimal DOUBLE ); CREATE INDEX IDX_parametres_Code_ID ON parametres(Code_ID); CREATE INDEX IDX_parametres_Param_ID ON parametres(Param_ID); DELETE FROM parametres; INSERT INTO parametres (Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('1' , 'Taux TVA' , '' , 0 , '' , '' , 'TVA' , 5.5 ); INSERT INTO parametres (Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('2' , 'Taux TVA' , '' , 0 , '' , '' , 'TVA' , 19.6 ); INSERT INTO parametres (Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('1' , 'Type de matieres' , 'Poudre' , 0 , '' , '' , 'TYPEMATIERE' , 0 ); INSERT INTO parametres (Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('2' , 'Type de matieres' , 'Pastilles' , 0 , '' , '' , 'TYPEMATIERE' , 0 );
En fait, je voudrais pouvoir cumuler plusieurs clients dans ces tables; pour créer une sauvegarde annuelle par exemple.
la tu peux puisque les lignes insert changeront
dans ce cas le script doit etre construit dynamiquement ?
oui et meme les inserts c'est la que ca devient compliqué, je sais en ligne de commande mySQL que tu peux le faire aussi.
Encore merci
Bonjour,
si je comprend bien un script contient plusieurs commandes SQL (ou
requetes plutot) ?! Dans ce cas, comment l'exécuter sous windev ?
exactement ensuite soit ut as un acces qui peux executer plusieurs requete
(mySQL4WD en version 2.002) ou alors prendre chaque ligne (du moins separé
par ; comme une requete et tu l'execute
ou encore envoyer le fichier en ligne de commande a mySQL
si j'utilise create table, la base MySQL va s'alourdir avec des données
dont on n'a pas forcement besoin. A moins de créer une autre base nommée
"sauvegarde" par exemple. C'est le principe ?
l'interet d'avoir le create table dans la sauvegarde est que tu peux
executer le script dans une base vide
ton fichier script peux avoir par exemple :
CREATE TABLE parametres (Code_ID CHAR(10) NOT NULL , Libelle CHAR(50)
,Texte CHAR(255) ,Numerique INTEGER ,Date DATETIME ,Heure TIME
,Param_ID CHAR(50) NOT NULL ,VDecimal DOUBLE );
CREATE INDEX IDX_parametres_Code_ID ON parametres(Code_ID);
CREATE INDEX IDX_parametres_Param_ID ON parametres(Param_ID);
DELETE FROM parametres;
INSERT INTO parametres
(Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('1' ,
'Taux TVA' , '' , 0 , '' , '' , 'TVA' , 5.5 );
INSERT INTO parametres
(Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('2' ,
'Taux TVA' , '' , 0 , '' , '' , 'TVA' , 19.6 );
INSERT INTO parametres
(Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('1' ,
'Type de matieres' , 'Poudre' , 0 , '' , '' , 'TYPEMATIERE' , 0 );
INSERT INTO parametres
(Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('2' ,
'Type de matieres' , 'Pastilles' , 0 , '' , '' , 'TYPEMATIERE' , 0 );
En fait, je voudrais pouvoir cumuler plusieurs clients dans ces tables;
pour créer une sauvegarde annuelle par exemple.
la tu peux puisque les lignes insert changeront
dans ce cas le script doit etre construit dynamiquement ?
oui et meme les inserts c'est la que ca devient compliqué, je sais en ligne
de commande mySQL que tu peux le faire aussi.
si je comprend bien un script contient plusieurs commandes SQL (ou requetes plutot) ?! Dans ce cas, comment l'exécuter sous windev ?
exactement ensuite soit ut as un acces qui peux executer plusieurs requete (mySQL4WD en version 2.002) ou alors prendre chaque ligne (du moins separé par ; comme une requete et tu l'execute ou encore envoyer le fichier en ligne de commande a mySQL
si j'utilise create table, la base MySQL va s'alourdir avec des données dont on n'a pas forcement besoin. A moins de créer une autre base nommée "sauvegarde" par exemple. C'est le principe ?
l'interet d'avoir le create table dans la sauvegarde est que tu peux executer le script dans une base vide ton fichier script peux avoir par exemple :
CREATE TABLE parametres (Code_ID CHAR(10) NOT NULL , Libelle CHAR(50) ,Texte CHAR(255) ,Numerique INTEGER ,Date DATETIME ,Heure TIME ,Param_ID CHAR(50) NOT NULL ,VDecimal DOUBLE ); CREATE INDEX IDX_parametres_Code_ID ON parametres(Code_ID); CREATE INDEX IDX_parametres_Param_ID ON parametres(Param_ID); DELETE FROM parametres; INSERT INTO parametres (Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('1' , 'Taux TVA' , '' , 0 , '' , '' , 'TVA' , 5.5 ); INSERT INTO parametres (Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('2' , 'Taux TVA' , '' , 0 , '' , '' , 'TVA' , 19.6 ); INSERT INTO parametres (Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('1' , 'Type de matieres' , 'Poudre' , 0 , '' , '' , 'TYPEMATIERE' , 0 ); INSERT INTO parametres (Code_ID,Libelle,Texte,Numerique,Date,Heure,Param_ID,VDecimal) VALUES ('2' , 'Type de matieres' , 'Pastilles' , 0 , '' , '' , 'TYPEMATIERE' , 0 );
En fait, je voudrais pouvoir cumuler plusieurs clients dans ces tables; pour créer une sauvegarde annuelle par exemple.
la tu peux puisque les lignes insert changeront
dans ce cas le script doit etre construit dynamiquement ?
oui et meme les inserts c'est la que ca devient compliqué, je sais en ligne de commande mySQL que tu peux le faire aussi.
Encore merci
I.G.LOG
C'est noté je vais essayer d'avancer comme ça. Encore un grand merci pour tes conseils éclairés
C'est noté je vais essayer d'avancer comme ça.
Encore un grand merci pour tes conseils éclairés
C'est noté je vais essayer d'avancer comme ça. Encore un grand merci pour tes conseils éclairés
Firetox
>>oui et meme les inserts c'est la que ca devient compliqué, je sais en ligne de commande mySQL que tu peux le faire aussi.
"I.G.LOG" a écrit dans le message de news:49ecc324$0$17753$
C'est noté je vais essayer d'avancer comme ça. Encore un grand merci pour tes conseils éclairés
si tu veux un exemple de code qui genere cela dans SQLManagerX tu a la methode SQLdump que j'utilise, l'avantage est que SQLMAnagerX le fait tout seul ensuite j'ai une fenetre qui lit le fichier crée et qui execute les requetes qui se trouvent dedans.
PS pour mySQL tu peux utiliser les insert multiple (plus rapide) ou tu peux inserer plusieurs value pour l'insert Insert into matable (macol,macol2) values (1,2),(2,3),(4,2) ...... tu peux envoyer comme ca une chaine de 64 Ko max mais 32 Ko est la taille optimale (j'ai fait des test sur des taille de 4 kO a 64 Ko pour voir la plus rapide. ce qui permet suivant la taille d'enregistrement d'envoyer 500 lignes ou plus en un seul insert
bon dev @+
>>oui et meme les inserts c'est la que ca devient compliqué, je sais en
ligne de commande mySQL que tu peux le faire aussi.
"I.G.LOG" <iglog@free.fr> a écrit dans le message de
news:49ecc324$0$17753$ba4acef3@news.orange.fr...
C'est noté je vais essayer d'avancer comme ça.
Encore un grand merci pour tes conseils éclairés
si tu veux un exemple de code qui genere cela dans SQLManagerX tu a la
methode SQLdump
que j'utilise, l'avantage est que SQLMAnagerX le fait tout seul ensuite j'ai
une fenetre qui lit le fichier crée et qui execute les requetes qui se
trouvent dedans.
PS pour mySQL tu peux utiliser les insert multiple (plus rapide) ou tu peux
inserer plusieurs value pour l'insert
Insert into matable (macol,macol2) values (1,2),(2,3),(4,2) ......
tu peux envoyer comme ca une chaine de 64 Ko max mais 32 Ko est la taille
optimale (j'ai fait des test sur des taille de 4 kO a 64 Ko pour voir la
plus rapide. ce qui permet suivant la taille d'enregistrement d'envoyer 500
lignes ou plus en un seul insert
>>oui et meme les inserts c'est la que ca devient compliqué, je sais en ligne de commande mySQL que tu peux le faire aussi.
"I.G.LOG" a écrit dans le message de news:49ecc324$0$17753$
C'est noté je vais essayer d'avancer comme ça. Encore un grand merci pour tes conseils éclairés
si tu veux un exemple de code qui genere cela dans SQLManagerX tu a la methode SQLdump que j'utilise, l'avantage est que SQLMAnagerX le fait tout seul ensuite j'ai une fenetre qui lit le fichier crée et qui execute les requetes qui se trouvent dedans.
PS pour mySQL tu peux utiliser les insert multiple (plus rapide) ou tu peux inserer plusieurs value pour l'insert Insert into matable (macol,macol2) values (1,2),(2,3),(4,2) ...... tu peux envoyer comme ca une chaine de 64 Ko max mais 32 Ko est la taille optimale (j'ai fait des test sur des taille de 4 kO a 64 Ko pour voir la plus rapide. ce qui permet suivant la taille d'enregistrement d'envoyer 500 lignes ou plus en un seul insert
bon dev @+
I.G.LOG
> si tu veux un exemple de code qui genere cela dans SQLManagerX tu a la methode SQLdump que j'utilise, l'avantage est que SQLMAnagerX le fait tout seul ensuite j'ai une fenetre qui lit le fichier crée et qui execute les requetes qui se trouvent dedans.
PS pour mySQL tu peux utiliser les insert multiple (plus rapide) ou tu peux inserer plusieurs value pour l'insert Insert into matable (macol,macol2) values (1,2),(2,3),(4,2) ...... tu peux envoyer comme ca une chaine de 64 Ko max mais 32 Ko est la taille optimale (j'ai fait des test sur des taille de 4 kO a 64 Ko pour voir la plus rapide. ce qui permet suivant la taille d'enregistrement d'envoyer 500 lignes ou plus en un seul insert
bon dev @+
Je vais voir tout ça. Encore merci !!!
>
si tu veux un exemple de code qui genere cela dans SQLManagerX tu a la
methode SQLdump
que j'utilise, l'avantage est que SQLMAnagerX le fait tout seul ensuite
j'ai une fenetre qui lit le fichier crée et qui execute les requetes qui
se trouvent dedans.
PS pour mySQL tu peux utiliser les insert multiple (plus rapide) ou tu
peux inserer plusieurs value pour l'insert
Insert into matable (macol,macol2) values (1,2),(2,3),(4,2) ......
tu peux envoyer comme ca une chaine de 64 Ko max mais 32 Ko est la taille
optimale (j'ai fait des test sur des taille de 4 kO a 64 Ko pour voir la
plus rapide. ce qui permet suivant la taille d'enregistrement d'envoyer
500 lignes ou plus en un seul insert
> si tu veux un exemple de code qui genere cela dans SQLManagerX tu a la methode SQLdump que j'utilise, l'avantage est que SQLMAnagerX le fait tout seul ensuite j'ai une fenetre qui lit le fichier crée et qui execute les requetes qui se trouvent dedans.
PS pour mySQL tu peux utiliser les insert multiple (plus rapide) ou tu peux inserer plusieurs value pour l'insert Insert into matable (macol,macol2) values (1,2),(2,3),(4,2) ...... tu peux envoyer comme ca une chaine de 64 Ko max mais 32 Ko est la taille optimale (j'ai fait des test sur des taille de 4 kO a 64 Ko pour voir la plus rapide. ce qui permet suivant la taille d'enregistrement d'envoyer 500 lignes ou plus en un seul insert
bon dev @+
Je vais voir tout ça. Encore merci !!!
Jerome PAULIN
I.G.LOG a écrit :
Bonjour, Je voudrais implémenter dans mon appli un système d'archivage "sélectif" des données. Par exemple permettre à l'utilisateur d'archiver tous les documents d'un client antérieurs à une date donnée. A votre avis, quel est le meilleur moyen pour y arriver ?
Bonjour,
Si c'est pour un problème de performance lors des recherches, tu peux regarder du coté du partitionnement des tables (MySQL 5.1). Le principe consiste à découper les données en "tranches" suivant certaines clés, afin d'obtenir des meilleurs temps de réponse. C'est totalement transparent du point de vue de l'utilisateur...
Si c'est juste "pour se faire plaisir", je partirai sur un système de table d'archive avec une requete du genre (syntaxe à valider, je n'ai pas ce qu'il faut sous la main pour cela) :
create table archive_latable_2007 select * from latable where annee 07; delete from latable where annee 07;
pour restaurer les données : insert into latable select * from archive_latable_2007
pour recuperer les noms des archives : SELECT * FROM information_schema.TABLES where TABLE_NAME like 'archive_latable%'
gg
I.G.LOG a écrit :
Bonjour,
Je voudrais implémenter dans mon appli un système d'archivage "sélectif" des
données. Par exemple permettre à l'utilisateur d'archiver tous les documents
d'un client antérieurs à une date donnée. A votre avis, quel est le meilleur
moyen pour y arriver ?
Bonjour,
Si c'est pour un problème de performance lors des recherches, tu peux
regarder du coté du partitionnement des tables (MySQL 5.1).
Le principe consiste à découper les données en "tranches" suivant
certaines clés, afin d'obtenir des meilleurs temps de réponse.
C'est totalement transparent du point de vue de l'utilisateur...
Si c'est juste "pour se faire plaisir", je partirai sur un système de
table d'archive avec une requete du genre (syntaxe à valider, je n'ai
pas ce qu'il faut sous la main pour cela) :
create table archive_latable_2007
select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données :
insert into latable select * from archive_latable_2007
pour recuperer les noms des archives :
SELECT * FROM information_schema.TABLES where TABLE_NAME like
'archive_latable%'
Bonjour, Je voudrais implémenter dans mon appli un système d'archivage "sélectif" des données. Par exemple permettre à l'utilisateur d'archiver tous les documents d'un client antérieurs à une date donnée. A votre avis, quel est le meilleur moyen pour y arriver ?
Bonjour,
Si c'est pour un problème de performance lors des recherches, tu peux regarder du coté du partitionnement des tables (MySQL 5.1). Le principe consiste à découper les données en "tranches" suivant certaines clés, afin d'obtenir des meilleurs temps de réponse. C'est totalement transparent du point de vue de l'utilisateur...
Si c'est juste "pour se faire plaisir", je partirai sur un système de table d'archive avec une requete du genre (syntaxe à valider, je n'ai pas ce qu'il faut sous la main pour cela) :
create table archive_latable_2007 select * from latable where annee 07; delete from latable where annee 07;
pour restaurer les données : insert into latable select * from archive_latable_2007
pour recuperer les noms des archives : SELECT * FROM information_schema.TABLES where TABLE_NAME like 'archive_latable%'
gg
I.G.LOG
> create table archive_latable_2007 select * from latable where annee 07; delete from latable where annee 07;
pour restaurer les données : insert into latable select * from archive_latable_2007
pour recuperer les noms des archives : SELECT * FROM information_schema.TABLES where TABLE_NAME like 'archive_latable%'
gg
Bonjour, Oui c'est bien ce que je cherche à faire. Mais je voudrais éviter d'alourdir la base avec des tables supplémentaires. J'aurais donc voulu ou générer des fichiers autonomes ou constituer d'autres bases de données, annuelles par exemple
>
create table archive_latable_2007
select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données :
insert into latable select * from archive_latable_2007
pour recuperer les noms des archives :
SELECT * FROM information_schema.TABLES where TABLE_NAME like
'archive_latable%'
gg
Bonjour,
Oui c'est bien ce que je cherche à faire. Mais je voudrais éviter d'alourdir
la base avec des tables supplémentaires. J'aurais donc voulu ou générer des
fichiers autonomes ou constituer d'autres bases de données, annuelles par
exemple
> create table archive_latable_2007 select * from latable where annee 07; delete from latable where annee 07;
pour restaurer les données : insert into latable select * from archive_latable_2007
pour recuperer les noms des archives : SELECT * FROM information_schema.TABLES where TABLE_NAME like 'archive_latable%'
gg
Bonjour, Oui c'est bien ce que je cherche à faire. Mais je voudrais éviter d'alourdir la base avec des tables supplémentaires. J'aurais donc voulu ou générer des fichiers autonomes ou constituer d'autres bases de données, annuelles par exemple
Jerome PAULIN
I.G.LOG a écrit :
create table archive_latable_2007 select * from latable where annee 07; delete from latable where annee 07;
pour restaurer les données : insert into latable select * from archive_latable_2007
pour recuperer les noms des archives : SELECT * FROM information_schema.TABLES where TABLE_NAME like 'archive_latable%'
gg
Bonjour, Oui c'est bien ce que je cherche à faire. Mais je voudrais éviter d'alourdir la base avec des tables supplémentaires. J'aurais donc voulu ou générer des fichiers autonomes ou constituer d'autres bases de données, annuelles par exemple
Salut,
ce que tu peux faire, c'est creer une base db_archive (sur le meme serveur que les données), et faire des requetes cross database :
create table db_archive.latable_2007 select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données : insert into latable select * from db_archive.latable_2007
gg
I.G.LOG a écrit :
create table archive_latable_2007
select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données :
insert into latable select * from archive_latable_2007
pour recuperer les noms des archives :
SELECT * FROM information_schema.TABLES where TABLE_NAME like
'archive_latable%'
gg
Bonjour,
Oui c'est bien ce que je cherche à faire. Mais je voudrais éviter d'alourdir
la base avec des tables supplémentaires. J'aurais donc voulu ou générer des
fichiers autonomes ou constituer d'autres bases de données, annuelles par
exemple
Salut,
ce que tu peux faire, c'est creer une base db_archive (sur le meme
serveur que les données), et faire des requetes cross database :
create table db_archive.latable_2007
select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données :
insert into latable select * from db_archive.latable_2007
create table archive_latable_2007 select * from latable where annee 07; delete from latable where annee 07;
pour restaurer les données : insert into latable select * from archive_latable_2007
pour recuperer les noms des archives : SELECT * FROM information_schema.TABLES where TABLE_NAME like 'archive_latable%'
gg
Bonjour, Oui c'est bien ce que je cherche à faire. Mais je voudrais éviter d'alourdir la base avec des tables supplémentaires. J'aurais donc voulu ou générer des fichiers autonomes ou constituer d'autres bases de données, annuelles par exemple
Salut,
ce que tu peux faire, c'est creer une base db_archive (sur le meme serveur que les données), et faire des requetes cross database :
create table db_archive.latable_2007 select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données : insert into latable select * from db_archive.latable_2007
gg
I.G.LOG
> Salut,
ce que tu peux faire, c'est creer une base db_archive (sur le meme serveur que les données), et faire des requetes cross database :
create table db_archive.latable_2007 select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données : insert into latable select * from db_archive.latable_2007
gg
Bonjour Oui c'est effectivement ce que je cherche à faire. Mais j'aurais voulu créer une autre base de données (par ex. base2007) pour ne pas multiplier les tables dans la base existante. Est ce que c'est possible par programmation ? et dans ce cas, les requetes "create table db_archive.latable_2007 select * from latable where annee 07" ne sont plus valide. Alors comment faire sans passer par des fichiers textes ?
>
Salut,
ce que tu peux faire, c'est creer une base db_archive (sur le meme serveur
que les données), et faire des requetes cross database :
create table db_archive.latable_2007
select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données :
insert into latable select * from db_archive.latable_2007
gg
Bonjour
Oui c'est effectivement ce que je cherche à faire. Mais j'aurais voulu créer
une autre base de données (par ex. base2007) pour ne pas multiplier les
tables dans la base existante. Est ce que c'est possible par programmation ?
et dans ce cas, les requetes "create table db_archive.latable_2007 select *
from latable where annee 07" ne sont plus valide. Alors comment faire sans
passer par des fichiers textes ?
ce que tu peux faire, c'est creer une base db_archive (sur le meme serveur que les données), et faire des requetes cross database :
create table db_archive.latable_2007 select * from latable where annee 07;
delete from latable where annee 07;
pour restaurer les données : insert into latable select * from db_archive.latable_2007
gg
Bonjour Oui c'est effectivement ce que je cherche à faire. Mais j'aurais voulu créer une autre base de données (par ex. base2007) pour ne pas multiplier les tables dans la base existante. Est ce que c'est possible par programmation ? et dans ce cas, les requetes "create table db_archive.latable_2007 select * from latable where annee 07" ne sont plus valide. Alors comment faire sans passer par des fichiers textes ?