7

Dans mon application, j'ai un fournisseur qui a un calendrier et des clients qui prennent un rendez-vous. J'ai besoin des fonctionnalités suivantes.Quel est le meilleur schéma de base de données pour un calendrier de disponibilité qui permet de planifier des rendez-vous (récurrents et uniques)?

Fournisseur: - Permet de spécifier la disponibilité récurrente. Par exemple Mon 9-5, mardi 10-3, etc. - Etre capable de masquer les données. Par exemple - pas disponible sur ce lundi. - Pouvoir ajouter des emplacements de dates/heures uniques et non récurrents. Par exemple - Ce samedi 9-5.

Client: - Être en mesure de réserver des rendez-vous uniques. - Être en mesure de réserver des rendez-vous récurrents. (Chaque lundi 9-4).

Jusqu'à présent, je suis venu avec 3 options:

  1. Diviser le calendrier en 30 minutes d'intervalle et créer une entrée de base de données pour chaque paire intervalle/fournisseur. Chaque intervalle peut être gratuit ou réservé. Lorsqu'un client réserve un rendez-vous, nous marquons les intervalles tels que réservés. Le problème avec cette approche est qu'elle gaspille beaucoup d'espace, et je ne suis pas sûr à quel point la performance de recherche serait pour une réservation récurrente.
  2. Enregistrez chaque période de disponibilité comme un "événement". S'il se reproduit, dupliquez l'événement. Lors de la recherche de machines à sous gratuites, effectuez une recherche dans la table de réservation afin de vous assurer qu'il n'y a pas de réservation de plus de chevauchement. Dans ce cas, la recherche de slots récurrents semble un peu gênante. Pour trouver tous les fournisseurs qui sont disponibles le lundi 9-5 pour la prochaine année, nous devrons rechercher tous les 'événements' correspondants et trouver tous les fournisseurs qui ont 52 événements correspondants.
  3. Enregistrez chaque période de disponibilité comme un "événement". Ajouter un drapeau si elle se reproduit.Lors de la recherche de machines à sous gratuites recherchez dans la table de réservation pour s'assurer qu'il n'y a pas de réservation de plus de chevauchement. Cela facilite la recherche de rendez-vous récurrents. Pour "black out" slot qui sont supposés se reproduire, nous pouvons simplement insérer une fausse réservation.

Répondre

6

1.Créez une table d'événements:

a) Avec les colonnes de base EVENTDATE, starttime, endtime, avec d'autres détails pour l'événement - ce sont les moments occupés sont donc ce que vous bloquer sur le calendrier

b) récurrent événements - ajouter des colonnes: - isrecurring - par défaut 0 - recurrencetype (quotidienne, hebdomadaire, mensuelle) - recurevery (un compte quand la récurrence aura lieu) - lun, mar, mer, thur, ven, sam, sun - jours de la semaine pour récurrence hebdomadaire - Le mois et le dayofmonth - pour la récurrence mensuelle

2.Le défi survient lors de la création des événements récurrents sur le calendrier: - si vous les créez tous en même temps (par exemple pour les 6 prochains mois), chaque fois que vous en modifiez un d'autres doivent être mis à jour - Si vous ne créez un événement que lorsque le précédent est passé, vous avez besoin d'une logique complexe pour afficher les calendriers pour les dates futures

3.Vous avez également besoin de règles pour vérifier si les événements sont autorisés. se chevauchent, quelles sont les ressources à utiliser, dans quelle mesure les événements peuvent être programmés

+0

pouvez-vous s'il vous plaît aider sur la façon dont la structure de la Reccuring Even schéma de table ts sera. n'a pas compris au total de ce qui précède –

Questions connexes