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

Bases de données Delphi Discussion :

Sauvegarde/Restauration avec sychronisation de plusieurs copies de BD


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Sauvegarde/Restauration avec sychronisation de plusieurs copies de BD
    Bonjour
    J'ai entraine de développer une application de Gestion de Stock pour une entreprise de matériaux de construction, cette dernière est composer de cinq unités de productions, en outre l'administration qui considérer comme une autre unité appeler Siège. Aucune réseau (informatique) à été faite entre ces unités et impossible de la mettre en place.
    Voici quelque règles passer dans le cahier des charges:
    1. Chaque unité de production doit avoir une copier de l'application;
    2. l'application de ces unité n'a pas le droit d'accéder à quelque table de la base de données, fait seulement les opération d'entrées/sorties sur les deux magasins(magasin de matières première et fourniture et magasin des produit finis);
    3. l'application de l'administration a tous les droits d'accéder à la base de données(Insertion/suppression et modification d'un article par exemple...);
    4. la base de données est la même(les même tables) pour tous les unité de production et le siège ;
    5. les sauvegardessur les base de données des différents unités de production sont faites périodiquement, pour les restaurésdans la base de données du siège;
    pour moi je travaillé avec Delphi7 et Interbase6.5 et Merise pour la conception.
    Mes question sont les suivants:
    1. comment faire les opérations de restaurations sans écraser la base de données à chaque fois(la base de données du Siège);
    2. Est-ce que interbase6.5 a la capacité de synchroniser entre les différents de données, si non orienter moi vers un autre SGBD pour compléter ce travail.
    Merci d'avance...

  2. #2
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    Pour commencer dans ta structure de la base de données tu dois prendre en compte que ton application gère plusieurs magasins et que chaque magasin appartient à une unité donc tu aura besoin d'une table unité qui va avoir une relation avec toutes tes autres tables (entrées/sorties/articles ... ou autres)
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Pour répondre à ta première question et afin d'éviter l'écrasement des enregistrements, je te conseille d'utiliser les GUID pour coder chaque enregistrement dans chacune de tes tables.
    L'avantage d'une telle solution réside dans le non écrasement d'un nouvel enregistrement étant donné l'unicité de ce type de codage.

    Pour les enregistrements qui peuvent être communs et modifiés dans chaque version de database, il faut mettre en place une gestion de la version pour chaque enregistrement et ne remplacer que par la version la plus récente ou proposer à l'utilisateur lors de la synchronisation le choix de l'enregistrement à valider.

    Microsoft Outlook utilise ce type de fonctionnement pour la synchronisation de données externes.

    Pour répondre à ta seconde question, regarde du côté des InstantObjects avec la gestion des données sous forme XML qui permet si ta base de données n'est pas trop volumineuse de gérer ce type de cas. La synchronisation reposera simplement sur la copie des répertoires qui contiennent les données.

    Tu peux bien évidemment utiliser un autre SGBD avec les InstantObjects en adaptant le système de synchronisation.
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Laisses tomber Interbase 6.5 obsolète et passes a Interbase 7 ou Firebird 2.5 (ceci dépendant du budget )

    Je ne sais pas pour Interbase , mais pour Firebird il existe des outils pour les synchronistations , cela demande bien sur comme le dit si bien JustMe une bonne conception de la Base de données voir ici
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    IBReplicator permet de mettre en oeuvre cela
    http://www.ibphoenix.com/products/software/ibreplicator
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Là où je travaillais avant, on avait une application de compta avec la même problématique de site réparti non connecté ! cela s'appelait un Terrain !
    Quasiment dans chaque Table, il y avait cette colonne terrain, mais gérer à la main et indexé ! j'avais proposé de l'inclure dans la clé Primaire !


    l'idée du GUID est une approche à retenir, dans un autre projet, en PHP, cela fut utilisé !

    Sinon, en IB ou FB, je l'ignore mais en MySQL ISAM, la clé Primaire peut-être composé de plusieurs champs, l'AUTOINC n'étant pas nécessairement le Premier !
    J'avais proposé l'idée, d'avoir une colonne Terrain, un entier ou une chaine (une valeur fixé au siège centrale, lors de l'installation de site, on fourni le numéro) + une champ autoInc

    Comme avec le GUID, il est impossible d'écraser les données entre les sites, la Clé primaire le gérant naturellement

    Un outil de réplication, pourrait être utilisé, par contre tous les sites auraient la base de données complètes comme le siège ?
    J'ai survolé le lien sur IBReplicator donné par Philippe Makowski, la section "Powerful replication strategies" indiquerait des possibilités pour le gérer, mais il est fort possible, que le modèle de données soient déjà étudiés pour cela !

    Voir aussi un outil comme TALEND qui permettrait de faire une consolidation manuelle, si tu ne souhaite pas stocker le code terrain ou utiliser un GUID !
    C'est de la résolution de doublon, pour un autre projet de gestion de pharmacie, la consolidation des DB entre les stocks et la centrale était une véritable Uzinagaz !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. [WD17] probleme sauvegarde/restauration avec WDJournal
    Par gzyassine dans le forum WinDev
    Réponses: 0
    Dernier message: 04/07/2015, 02h07
  2. Probleme Sauvegarde-Restauration avec MySql Administrator
    Par Christophe Charron dans le forum Administration
    Réponses: 7
    Dernier message: 26/07/2005, 08h25
  3. Recherche d'un mot avec LIKE sur plusieurs champs
    Par reynhart dans le forum Langage SQL
    Réponses: 16
    Dernier message: 26/11/2004, 17h41
  4. [FB 1.5][BCP 5]Sauvegarde / Restauration
    Par Sitting Bull dans le forum Administration
    Réponses: 2
    Dernier message: 03/09/2004, 14h56
  5. Sauvegarde / Restauration
    Par Sitting Bull dans le forum Administration
    Réponses: 2
    Dernier message: 13/06/2003, 13h46

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