Bonjour,
Je travaille sur une application qui doit gérer des données de 11 tables qui ne contiendront pas énormément de données, la plus grande ce sera de l'ordre de quelques milliers de lignes, c'est donc une petite BD.
Pour l'application desktop, pas de problème, on fait cela en client serveur pour que quelques postes clients ( < 5 ) puissent accèder à cette BD.
La ou cela commence à se compliquer, c'est pour l'application mobile, on doit faire une version mobile de cette application qui pourrait fonctionner même sans connexion à la BD, j'envisage dans un premier de temps d'utiliser le mode briefcase avec ClientDataSet, je me documente sur le sujet et cela peut se résumer par on charge le ClientDataSet depuis la BD ensuite, en mode déconnecté, le ClientDataSet sauvegarde cela dans un fichier ( format binaire ou XML ) et lorsque l'application mobile retrouve la connection avec la BD, on fait un ApplyUpdate pour sauvegarder le delta dans la base ( à voir ce qu'il faut faire si la BD est crée depuis le poste mobile sans avoir eu un accès au préalable à la BD ).
Il nous faut donc générer un fichier XML par table ? ce qui est relativement lourd, c'est vrai que ce sont des petites tables et comme il n'y a que 11 tables, pourquoi pas...
Et quid des relations entre tables ? Il y a quelques intégrités référentielles ( il y a quelques clés étrangères sur certaine tables ), elles se feront lors de l'ApplyUpdate ou alors au niveau du ClientDataSet, dans ce cas, on doit utiliser un ClientDataSet par table ?
Je n'ai aucune experience du mode briefcase, cela semble être une solution pour les petites BD ( comme la notre ) et sinon, il y a la solution de la réplication mais entre SGDB hétérogène, car sur le serveur il y a une base FireBird ou MS-SQL et pour les postes mobiles, on utilise SQLite vu que pour l'instant, FireBird ne fonctionne pas sur iOS et Android ( idem pour MS-SQL ).
Voila, qu'en pensez vous ? Avez vous des conseils ou des remarques ?
Merci
Thierry
Partager