Conseil sur mon projet base locale et distant
nicocotiers
-
djazair -
djazair -
Bonjour, je souhaiterais avoir quelques conseils et réponses à un projet personnel que je souhaite réaliser.
Je monte mon entreprise (jusque là pas de problèmes) et je souhaite réaliser un site "vitrine". (Je pense que là ça devrait le faire).
Nous sommes plusieurs à aller chez les clients afin de vendre nos produits.
Chacun aura à disposition un ordinateur portable et une imprimante.
J'aimerais donc créer une application web (en local car on ne va pas se connecter à internet chez le client) qui gère les bons de commande et sort des factures. Le tout étant enregistré dans une base de données locale.
Je voulais donc savoir si c'était possible (et pas trop difficile) de regrouper les infos sauvegardées par chacun dans la journée dans une base générale sur un serveur distant.
En gros: je vais chez les clients, je fais des bons de commande et des factures (que j'imprime sur place); tout est enregistré dans ma base locale. Le soir je rentre chez moi, je connecte mon pc portable à internet et je mets à jour la base de données commune sur le serveur distant (celui qui héberge mon site web par exemple)
Pensez-vous que ce projet est réalisable? techniquement comment faire? Pas trop dur?
Merci, toutes les remarques seront les bienvenues
Je monte mon entreprise (jusque là pas de problèmes) et je souhaite réaliser un site "vitrine". (Je pense que là ça devrait le faire).
Nous sommes plusieurs à aller chez les clients afin de vendre nos produits.
Chacun aura à disposition un ordinateur portable et une imprimante.
J'aimerais donc créer une application web (en local car on ne va pas se connecter à internet chez le client) qui gère les bons de commande et sort des factures. Le tout étant enregistré dans une base de données locale.
Je voulais donc savoir si c'était possible (et pas trop difficile) de regrouper les infos sauvegardées par chacun dans la journée dans une base générale sur un serveur distant.
En gros: je vais chez les clients, je fais des bons de commande et des factures (que j'imprime sur place); tout est enregistré dans ma base locale. Le soir je rentre chez moi, je connecte mon pc portable à internet et je mets à jour la base de données commune sur le serveur distant (celui qui héberge mon site web par exemple)
Pensez-vous que ce projet est réalisable? techniquement comment faire? Pas trop dur?
Merci, toutes les remarques seront les bienvenues
A voir également:
- Conseil sur mon projet base locale et distant
- Mon ip locale - Guide
- Base de registre - Guide
- Filigrane projet - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Gant projet - Télécharger - Gestion de projets
4 réponses
Bonjour,
A priori, ce n'est pas trop difficile.
Les choses à prévoir :
- Base locale, dans toutes les tables à synchroniser, un champ booléen qui vaut 1 si la ligne a déjà été intégrée à la base générale, et 0 sinon.
- Si tu veux pouvoir faire des modifications à des factures et autres données déjà intégrées, mettre aussi un champ booléen qui permette de savoir si une ligne a été modifiée. Aussi, prévoir un champ qui contienne l'identifiant de la ligne dans la base générale. C'est important en cas de modification pour savoir quelle ligne il faut modifier, les id risquant de ne pas être les mêmes si tu utilises des nombres auto-incrémentés.
Ensuite, un module dans tes applications locale permet de faire un select sur toutes les lignes à modifier / ajouter, garde ça en mémoire, se connecte à la base de données générale et y fait les insertions / modifications correspondantes. Et bien sûr, une fois ceci fait, elle indque dans la base locale que les lignes en question ont bien été transmises (après une vérification par select sur la base distante, éventuellement, histoire d'être vraiment sûr)
Plutôt que de travailler avec des champs booléens, tu peux aussi travailler avec des dates (une d'ajout, une de modification). Si l'application connait la date de la dernière synchronisation (il suffit de l'enregistrer), elle pourra ne prendre que les nouvelles données. Cette solution peut être plus simple à mettre en place, mais je ne l'aime pas parce qu'elle dépend de la date et l'heure des ordinateurs portables, qui peuvent être altérées pour une raison ou une autre.
Je te conseille pour tout ça une architecture basée sur une solution WAMP, LAMP ou easyPhp, qui me paraissent bien adaptées.
Xavier
A priori, ce n'est pas trop difficile.
Les choses à prévoir :
- Base locale, dans toutes les tables à synchroniser, un champ booléen qui vaut 1 si la ligne a déjà été intégrée à la base générale, et 0 sinon.
- Si tu veux pouvoir faire des modifications à des factures et autres données déjà intégrées, mettre aussi un champ booléen qui permette de savoir si une ligne a été modifiée. Aussi, prévoir un champ qui contienne l'identifiant de la ligne dans la base générale. C'est important en cas de modification pour savoir quelle ligne il faut modifier, les id risquant de ne pas être les mêmes si tu utilises des nombres auto-incrémentés.
Ensuite, un module dans tes applications locale permet de faire un select sur toutes les lignes à modifier / ajouter, garde ça en mémoire, se connecte à la base de données générale et y fait les insertions / modifications correspondantes. Et bien sûr, une fois ceci fait, elle indque dans la base locale que les lignes en question ont bien été transmises (après une vérification par select sur la base distante, éventuellement, histoire d'être vraiment sûr)
Plutôt que de travailler avec des champs booléens, tu peux aussi travailler avec des dates (une d'ajout, une de modification). Si l'application connait la date de la dernière synchronisation (il suffit de l'enregistrer), elle pourra ne prendre que les nouvelles données. Cette solution peut être plus simple à mettre en place, mais je ne l'aime pas parce qu'elle dépend de la date et l'heure des ordinateurs portables, qui peuvent être altérées pour une raison ou une autre.
Je te conseille pour tout ça une architecture basée sur une solution WAMP, LAMP ou easyPhp, qui me paraissent bien adaptées.
Xavier
Bonjour,
Merci beaucoup pour la réponse précise et rapide!!
Je penchais entre wamp et easyphp mais ce n'est qu'un détail.
Je vois bien ce que je peux faire maintenant.
dans la base générale les n° d'enregistrement seront autoincrémentés.
En local aussi autoincrémenté mais je pense à ajouter un champ dans la base générale qui contiendra une lettre (a b c ou d en fonction du commercial qui a fait la facture)+ le numéro de la facture locale (exemple: A10= dixième enregistrement de la base locale du commercial A).
Je vais opter pour les champs booléens, ça me parait pas mal. Mais rien ne m'empêche de sauvegarder la date et l'heure en même temps.
encore merci !!
Si d'autres personnes ont des remarques à ajouter, ne vous privez pas
je mets résolu
Merci beaucoup pour la réponse précise et rapide!!
Je penchais entre wamp et easyphp mais ce n'est qu'un détail.
Je vois bien ce que je peux faire maintenant.
dans la base générale les n° d'enregistrement seront autoincrémentés.
En local aussi autoincrémenté mais je pense à ajouter un champ dans la base générale qui contiendra une lettre (a b c ou d en fonction du commercial qui a fait la facture)+ le numéro de la facture locale (exemple: A10= dixième enregistrement de la base locale du commercial A).
Je vais opter pour les champs booléens, ça me parait pas mal. Mais rien ne m'empêche de sauvegarder la date et l'heure en même temps.
encore merci !!
Si d'autres personnes ont des remarques à ajouter, ne vous privez pas
je mets résolu
Bonjour,
C'est maraant ... j'applique exactement le même principe.
Juste un détail, il faut avoir confiance aux personnes qui auront les pc portables et qui travailleront chez les clients car dans le code de l'application locale il y aura les infos de connection à la base distante. Et si ces infos tombe entre des mains malvaillantes ... c'est la catastrophe !!!!
C'est maraant ... j'applique exactement le même principe.
Juste un détail, il faut avoir confiance aux personnes qui auront les pc portables et qui travailleront chez les clients car dans le code de l'application locale il y aura les infos de connection à la base distante. Et si ces infos tombe entre des mains malvaillantes ... c'est la catastrophe !!!!