这是一个关于存储日历数据的快速架构问题。
基本上,我有一个租赁服务数据库。在前端,有一个日历显示每个未来日期的“可用”或“不可用”。在后端,用户可以在jQuery日历上将任何日期/日期范围设置为可用或不可用(1或0)。
我的问题是你如何将这些数据存储在mysql中并在前端检索它?
可能有所有可用日期并存储不可用日期?然后,如果它们再次设置为可用,请删除该日期的记录吗?
干杯, RJ
答案 0 :(得分:6)
可能有所有可用日期并存储不可用日期?然后,如果它们再次设置为可用,请删除该日期的记录吗?
是的,我会继续这样做,除非我在租借到期时不会删除记录 - 您很容易知道租约已过期,因为它已经过去,因此您也会自动保留租赁历史。
毕竟,有无数的可用日期 1 ,所以如果你反过来(并存储免费日期),你必须人为地限制支持的日期范围。 / p>
1 将来。而且,在某种意义上,过去也是如此。
此外,我猜你想要租用服务时需要一些额外的信息(例如租客的名字),如果租房由不存在的行代表,那么无处可存储!
由于租赁的粒度是一整天,我认为您正在寻找类似于此的数据库结构:
注意RENTING_DAY PK如何自然地防止重叠。
或者,您可能会放弃RENTING_DAY并直接在RENTING中设置START_DATE和END_DATE,但这需要明确的range overlap checks,may not scale ideally。
答案 1 :(得分:1)
确定默认值是Available
还是Unavailable
。
可能有所有可用日期并存储不可用日期?
所以默认是可用的吗?
然后您可以将unavailable_start
和unavailable_end
- 存储为日期字段。单日,unavailable_start = _end
。然后,您可以轻松查询一个月或任何日期范围,并在该范围内返回不可用期。然后让jQuery解析它以显示这些日期的日历详细信息。