J'ai comme projet d'aider le gestionnaire RH dans son travail de préparation d'avancement de grade de plusieurs dizaines d'agents territoriaux (330 en 2010). Comme tout projet, j'ai abordé la première étude de modélisation avec AnalyseSI mais le code généré n'étant pas spécifiquement compatible HSQLDB sauf au prix d'adaptations fastidieuses, je préfère attaquer la base de données en mode ébauche avec les règles de gestion suivantes :
Code : Tout sélectionner
1. tout agent dispose d'un grade
2. tout agent est posté dans une unité de niveau 1
3. tout agent occupe une fonction
4. tout agent qui est intégré dans la base est candidat au grade supérieur (mais les agents saisis qui renonceraient restent dans la base pour éviter la saisie éventuelle de leurs informations l'année suivante)
5. toute unité de niveau 1dépend fonctionnellement d'une unité supérieure de regroupement de niveau 2
6. dans chaque type d'avancement il y a des conditions à remplir fixées annuellement : soit une ancienneté dans le grade précédent, soit un créneau d'âge, soit une limite d'age
7. chaque agent est apprécié selon des critères de notation et d'aptitude. Un avis et un classement est ensuite donné par grade.
8. chaque agent est reçu en entretien préalable par le gestionnaire RH et l'entretien se traduit par une mention favorable ou non.
9. chaque agent est classé par le responsable de chaque unité de niv2
10. tous les classements de niveau 2 sont fusionnés par le RH en un classement unique par grade et par ordre de mérite
11. La commission paritaire se réunit en fin d'année et arrête les listes.
Code : Tout sélectionner
20. j'ai mis la quasi-totalité des champs sur « non » pour la « saisie requise » à l'exclusion bien entendu des clés primaires dans le souci d'éviter toute erreur d'intégrité des données car à l'usage je trouve les erreurs SQL peu voire pas explicites du tout quand on débute.
21. j'ai ajouté des colonnes dans la perspective d'une évolution future
22. la base doit s'ouvrir en pleine page sur un menu principal ( vraisemblablement switchboard encore que la mise en page est très restrictive)
23. tous les formulaires doivent s'ouvrir en pleine page et être fermés après utilisation
24. les navigations se feront par des boutons explicites
25. j'ai laissé les relations sur « aucune action » mais j'ai cru comprendre qu'il valait mieux utiliser « supprimer la cascade » et « mettre à jour la cascade » afin que la base n'enfle pas trop
Comme il s'agit de ne pas brûler d'étapes et de ne pas vouloir avoir fini avant de commencer, je fournis ma base en V0 avec juste l'architecture des tables et les relations. Mon projet étant assez ciblé et spécifique, il peut ne pas intéresser grand monde mais selon vous, les tables et les relations sont-elles cohérentes avec les règles de gestion que j'ai posées plus haut ?
Nota, sous Linux je n'arrive pas à conserver la disposition des tables dans la fenêtre « relations » si bien qu'elles sont toutes accolées à la réouverture ce qui me contraint à les réorganiser à chaque fois. Ce phénomène n'existe pas sous windows. Je viens d'installer la OO3.3 officielle mais le phénomène est identique