Schéma Conceptuel - Planning PHP - PHP - Programmation
Marsh Posté le 24-05-2011 à 21:48:07
id, debut,fin ,membre_id
avec debut et fin des datetime
Marsh Posté le 24-05-2011 à 21:51:16
Moi je ferais un truc comme ca
ID | IDUser | date_debut | date_fin | nom_tache
Les timestamp seraient facile a recuperer et pour la recurrence, cela serait geré en PHP...
Edit : Un peu grillé ...
Marsh Posté le 24-05-2011 à 21:53:29
C'est noté.
Dans le cas d'un site qui risquerait d'avoir un gros trafic, est ce que des requêtes en pagailles suivant ton schéma ne vont pas être trop gourmandes en ressource ? (exemple dans le cas d'un utilisateur ayant indiqué plus de 25 créneaux de disponibilité)
Merci de ton aide ;-)
Marsh Posté le 24-05-2011 à 21:55:54
Ok GordonF_69 (merci de ta réponse)
Vous avez apparement la même idée sur le schéma, je vais partir dessus.
Concernant la récurrence en php, j'ai du mal à visualiser par contre, vous pouvez m'éclairer ?
Marsh Posté le 24-05-2011 à 22:16:01
A toi de bien placer les clé primaire pour optimiser ta base.
Pour les récurrence, je ferais un boucle en PHP qui fait plusieurs inserts.
ex : Tous les jours de 18 a 22h.
Tu fait un boucle de x jours qui fait un insert de 18 a 22h dans la BDD...
Ou sinon une 2e table pour gerer les recurrence, (mais ya des chances que ca devienne trop complexe)
Marsh Posté le 25-05-2011 à 09:26:37
Dans mon soft Astres (cf ma signature), j'ai codé 2 types de calendriers de "disponibilités".
Le premier est pour tracer les absences (congés, déplacements, formations...) des membres d'équipes. La contrainte : 1 absence max par jour (possibilité de mettre 1/2j AP/PM). Par contre, lors de la création, l'IHM propose de créer une absence répétée périodiquement.
Le 2ème planning est la planification de créneaux horaires durant lesquels les membres des équipes pensent travailler sur des tâches (tickets d'incidents ici) ou ont travaillé sur des tâches. Ce 2ème planning est corrélé au premier pour pas planifier des créneaux un jour d'absence
Et pour ce planning, j'ai fait presque ce que les autres ont proposé comme MCD :
ID | IDUser | Debut |durée | IDTache | Commentaire |DateValidation
Debut est un datetime, Durée est un entier représentant, dans mon cas, un nb d'heures.
DateValidation, c'est si y'a un circuit de validation par un supérieur. Une fois que le créneau est validé, on peut plus le modifier/supprimer
Edit : côté perfs, en qq mois, j'ai dans ma table presque 20000 enregistrements, les requêtes sont quasi instantanées. le tout est de bien indexer ses champs et aussi, de tuner Mysql si nécessaire (taille des caches, tables temporaires...)
Marsh Posté le 25-05-2011 à 21:12:11
Parfait ! Merci à tous pour vos différents conseils !
rufo, je regarde Astres dès que possible, merci pour le partage :-)
Je fais remonter le sujet en cas d'interrogation.
A bientôt.
Marsh Posté le 24-05-2011 à 19:18:29
Bonjour à tous,
Pour un projet de site web que je suis en train d'étudier, je dois me pencher sur un calendrier de disponibilité.
Concrètement, chaque membre aura la possibilité de définir ses disponibilités dans son planning dans son compte (par heure / jour & semaine ).
Mon problème : je suis en train de définir le schéma conceptuel de la base de données, et je te bute sur cette partie.
J'ai songé au modèle suivant pour les colonnes :
IDUser | Semaine | Lundi | Mardi ..... Dimanche
Mais on perd la notion d'heure de disponibilités au sein d'une même journée.
De plus j'aimerai si possible ajouter une notion de récurrence (exemple : disponible tous les lundi de 16H à 18H).
Le planning serait défini par l'utilisateur au maximum sur les deux mois qui suivent le mois en cours.
Je ne cherche pas de solution toute faite évidement mais un petit coup de pouce ;-)
Merci d'avance.