gpt4 book ai didi

ruby-on-rails - 可用性日历的最佳数据库架构是什么,它可以安排约会(重复和单次)

转载 作者:行者123 更新时间:2023-12-04 04:18:58 26 4
gpt4 key购买 nike

在我的应用程序中,我有一个提供日程表的提供程序,以及一个可以从日程表中预定约会的客户端。我需要以下功能。

提供者:
-能够指定重复出现的可用性。例如星期一9-5,星期二10-3等。
-能够屏蔽数据。例如-不适用于本周一。
-能够添加单个而非重复的日期/时间段。例如-这个星期六9-5。

顾客:
-能够预约单人约会。
-能够预定重复约会。 (每个星期一9-4)。

到目前为止,我想出了3种选择:

  • 将计划分为30分钟间隔,并为每个间隔/提供者对创建一个数据库条目。每个时间间隔可以是免费的,也可以是预定的。当客户预订约会时,我们会将间隔标记为已预订。这种方法的问题是浪费大量空间,而且我不确定重复出现的预订的搜索性能如何。
  • 将每个可用时间段另存为“事件”。如果重复发生,请重复该事件。搜索空闲时段时,请在预订表上进行搜索,以确保没有重叠预订。在这种情况下,寻找重复出现的广告位似乎有点尴尬。要查找明年9月5日至5日可用的所有提供程序,我们必须搜索所有匹配的“事件”,并找到所有具有52个匹配事件的提供程序。
  • 将每个可用时间段另存为“事件”。如果重复出现,请添加一个标志。当搜索空闲时段时,请在预订表中搜索以确保没有重叠预订。它使搜索重复约会变得更加容易。要重新出现“停电”时段,我们可以插入一个虚假的预订。
  • 最佳答案

    1.创建一个事件表:

    a)使用基本列eventdate,starttime,endtime以及该事件的其他详细信息-这些是繁忙时间,因此您在日历上屏蔽的内容也是如此

    b)重复事件-添加列:
    -重复发生-默认为0
    -重复类型(每天,每周,每月)
    -递归的(计数何时发生复发)
    -周一,周二,周三,周四,周五,周六,周日-每周重复的一周中的几天
    -每月和每月的第几天-每月重复一次

    2.在日历上创建重复事件时会遇到挑战:
    -如果您一次创建所有这些文件(例如接下来的6个月),则每当您编辑其中一个文件时,其他文件都必须更新
    -如果您仅在前一个事件过去后创建事件,那么您需要复杂的逻辑来显示 future 日期的日历

    3.您还需要规则来照顾是否允许事件相互重叠,将使用哪些资源以及可以安排事件多远的时间

    关于ruby-on-rails - 可用性日历的最佳数据库架构是什么,它可以安排约会(重复和单次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7643773/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com