Upload
marian-rousset
View
106
Download
1
Embed Size (px)
Citation preview
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Interface générique ?
Pourquoi une interface générique ?
Fonctionalités
Consultation, Mise à jour
Code
Adaptation aux BDs : nommage, paramètres
Applications pilotes : échantillons, pipettes
Echantillons
Pipettes
Avantages / Inconvénients
Conclusion : perspectives
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Interface générique ?
A partir d’une base de données, génération dynamique d’une interface d’interrogation et de mise à jour
Technologie : linux/apache/php/mysql (technologie web)
Implémentation : serveur virtuel privatif CTIG (intranet)
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Pourquoi une interface générique ?
Deux projets à réaliser :
Gestions échantillons biologiquesGestion et suivi métrologie des pipettes
Incertitudes sur l’un d’entre eux (échantillons) pour des raisons politiques (barcode) et fonctionnelles (périmètre de barcode)
Interface réutilisable, donc générique
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Fonctionnalités (1) :
Domaine ou Thème : tables regroupées fonctionnellement (5 à 10)
Requêtes affichées par table ou par domaine
Requêtes sur domaine :
résultats affichés pour les tables du domaine affichage des autres domaines par lien
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Fonctionnalités (2) :
Fenêtre d’affichage : Nombre d’occurrence affichées (pagination)
Masquage/affichage des colonnes réglables
Valeurs par défaut : include_config.php
Masquage/affichage des requêtes au choix
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
L’interface : page d’entrée
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
L’interface : choix du travail global (thème) ou par table
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
L’interface : réglage de l’affichage
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
L’interface : construction de la requête
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
L’interface : afficher le résultat de la requête
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
L’interface : mise à jour identique à consultation, sauf que les valeurs affichées sont modifiables (à l’exception des clés)
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
L’interface : code :
PHP
Adaptation aux applications :renseignement de variables (include_config.php)règles de nommages des tables et colonnes
Jointures :calculées à l’installation (et si modif schéma)stockées dans une table de service (jointures)
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Règles de nommage (1)
Tables :
Nom des tables : un ‘_’ signifie relation n-n
Le domaine est mentionné dans l’attribut ‘comment’ de mysql (séparateur : ‘, ‘ si table appartient à plusieurs domaine)
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Règles de nommage (2)
Colonnes :
Nom : ‘no_... ‘_[tableorigine]_alien’ ou ‘code_..._[tableorigine]_alien’ : clé étrangère
Nom : ‘no_[nomdelatable]’ ou ‘code_[nomdelatable]’, clé primaire
Nom : ‘date_...’, dateNom : ‘date_creation’, date système ajout recordClé primaire : début de table
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Applications :
Deux applications pilotes pour l’instant :
Gestion des échantillons biologiques
Gestion de la métrologie des pipettes
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Applications : Echantillons
Complément local à barcode : échantillons hétérogènes, parfois mal référencés, orienté animal et expérimentation
Communication avec barcode : import/export de feuilles de routes
Volumétrie (est) : < 100000 échantillons
Cible : Equipe G2B, puis GABI, puis ?
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Applications : Echantillons - schéma
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Applications : Métrologie des pipettes :
en aval de la base de mesures, gestion du parc de pipettes
Communications avec la base amont : import de fichiers csv (via Access)
Volumétrie : < 1000 pipettes
Cible : GABI, puis ?
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Applications : Metrologie pipettes - schéma
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Etat actuel du serveur :
Pipettes : en ligne, comptes d’équipes (tests) créés
Premiers retours de bugs
Echantillons : en ligne
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
L’interface : Interface générique (phpmygi) :
Avantages : Multi-projet Souplesse : schéma modifiable sans redéveloppementPortable facilement
Inconvénients :
Lourdeur du développement initialCarrossage rudimentairePerformances pas excellentes
A L I M E N T A T I O N
A G R I C U L T U R E
E N V I R O N N E M E N T
PhpMyGI une interface générique mysql
Perspectives d’évolution :
Court terme :
Terminer les développements/débugages bloquants de l’interface
Mise en test, puis en production fonctionnalités en l’état
Moyen terme :
Intégrer fonctionnalités prévues (dont affichage horizontal des domaines; bascule consultation/mise à jour)
Améliorer performances et carrossage interface générique
Supprimer les contraintes de nommage
Etendre les possibilités de requêtage (toute requête sql)
Documentation
Long terme :
Autres applicatifs, publication en open source,...