Bon, je m'arrache la tête, voila un peu plus d'infos.
Le but de l'application est le suivant.
On a deux types de personnes, les collaborateurs et les clients.
=> table collab + table client
Toutes les nuits un cron va alimenter les dossiers, le référentiel de rubriques et les salariés.
=> table dossier + table référentiel (renommer en rubrique) + table salarie
Un collaborateur défini quels sont les rubriques à renseigner (en les recherchant dans le référentiel) ainsi que leur configuration (d'où ma table dossier_rubriques puisque celle-ci va contenir les champs de configuration, tel que indice, type_calcul, etc...).
=> table dossier_rubrique
Une fois par mois, le collaborateur va ouvrir une nouvelle saisie pour un dossier en renseignant l'année et le mois de la saisie, cette saisie doit référencer les rubriques selectionnées ( = les colonnes ) et les salariés du dossier ( = les lignes ).
=> table saisie + table saisie_rubrique (clone des données de dossier_rubrique avec la config) + table saisie_salarie (alimenter avec les salariés courant du dossier)
Une fois la saisie ouverte le client va saisir les données des rubriques pour chaque salariés.
=> table donnee
La saisie est fermé par le client lorsqu'il a fini.
Le collaborateur télécharge un fichier .txt contenant toutes les données (avec un formatage spécial mais là n'est pas le problème).
En fonction du type de rubrique les valeurs à saisir ne sont pas les mêmes.
Le système doit pouvoir historiser les saisies et être capable de rendre en affichage une saisie passées.
Le système doit pouvoir logués toutes les modifications apportés sur les valeurs saisies.
je n'ai pas encore intégrer le système de logs, les collab et les clients mais j'en suis au MCD suivant et pour moi tout est ok sauf la table saisie_rubrique_salarie (qui est une relation de type n,m sur des relations de type n,m :$, du coup j'ai ajouter un id autoincrement en guise de PK)
EDIT: tu peux déplacer ce post dans la partie Méthodologie, modélisation, sécurité, merci.
EDIT2: maj du MCD