Pour avoir des fonctionnalités minimales il y a 2 modèles de données:
- le modèle par intervalle : chaque tâche a une date de début et de fin (null par défaut). Pour avoir le nombre de tâches assignées à 1 date donnée (à la fin de la journée, c'est important), il suffit de faire un select avec une clause
where date début <= [date cherchée] and ([date cherchée] < date fin or date fin is null)
Le défaut c'est que vous n'avez pas la traçabilité des statuts dans le temps s'il y a plusieurs types de statuts.
- le modèle de gestion de stock: pour chaque tâche on créé 1 événement "Ouvert" avec la date d'ouverture, 1 événement "Fermé" avec la date de fermeture, et pourquoi pas d'autres événements ("changement de statut", etc.). Pour avoir le nombre de tâches ouvertes à une date donnée, il suffit de faire un select pour sommer le nombre d'événements "Ouvert" - "fermé" avec une clause
where date événement <= [date cherchée]
Là où c'est risqué c'est qu'il faut conserver tout l'historique pour avoir un chiffre juste. Après il est possible de conserver des photos (mensuelles par exemple) pour éviter d'avoir à conserver tout l'historique.
Ce qui est sûr c'est qu'agréger les données ne peut que compliquer les choses, il vaut mieux conserver le détail à mon avis.
Partager