Bonjour,
Je dois modéliser une gestion d'évènements.
Voila ce que j'ai fait et les points auxquels j'ai pensé mais j'ai dû en oublier quelques uns. Si quelqu'un à déjà une expérience dans ce domaine et peux partager ou donner un avis, des liens vers des trucs tout fait , j'ai déjà fait des recherches mais j'ai rien trouvé d'intéressant.
Sinon je me serai pas embêté à y réfléchir .
J'ai listé 4 cas :
A 1 jour de la semaine (ex : tous les dimanches)
B 1 date calculée (ex : 1er samedi du mois)
C 1 date donnée (ex : 1er Mai)
D n dates qui se suivent (ex : du 23 au 25 décembre)
Je range tout ça comme ça :
Une table FETE avec des trucs métiers en s'en foue
Une table DATES avec les champs : (Date date, Varchar jour_de_la_semaine, Varchar calcul)
qui pourra contenir :
- des dates dans le champ date ce qui gère les cas C et D.
- les noms des jours lundi, mardi, mercredi etc... dans la colonne jour_de_la_semaine
- et 1er samedi, 2eme mercredi etc... dans la colonne calcul.
Il n'y aura qu'un champ remplie soit date, soit jour_de_la_semaine soit calcul.
Une table DATES_FETE avec les champs : (Booleen repeter, int pere, date date_limite_genere)
- repeter pour savoir si c'est un évènement récurent.
- pere l'id de la table c'est pour gérer le cas où si un évènement récurent est modifié je demande si la modification doit s'appliquer à tous les évènements ou seulement celui-la si on choisi la deuxième réponse alors je crée un évènement cas C avec une date spécifique mais je garde un lien avec la récurrence d'origine si l'évènement récurent est supprimé je tue ses fils .
date_limite_genere c'est pour mettre une date pour quand je ferai l'affichage ne pas recalculer les dates puisqu'elles seront déjà dans la base.
Au niveau de l'application je pense générer les dates pour les évènements récurent au moins lors de la première interrogation. Et ne recalculer que pour les évènements cas A et B qui n'ont pas de date_limite_genere "périmée".
une Table horaires avec les champs horaire_debut, horaire_fin rien d'extraordinaire.
une Table periode avec les champs periode_debut, periode_fin rien d'extraordinaire non plus.
Voili voilou merci pour votre aide.
Partager