0

我正在为多日约会计划设计数据库。这就是我正在做的事情。我有 40 个“位置”,客户可以预订 x 天。我在决定存储此信息的最佳方式时遇到了麻烦。我正在考虑,如果在特定日期没有为“点”创建一行,那么我会知道这个“点”是免费的。相对于每天为每个“点”创建一行可能一年,然后如果“点”是空闲的,则有一个布尔列。我的下一个问题是我将如何在多日内进行特定的预约商店。我正在考虑有一个列来存储前一天的主键。如果此栏为空,我会知道此约会是针对许多人的第一天还是仅是一天的约会。

4

1 回答 1

2

由于必须始终预订一整天的位置,因此我将采用第一种方法,类似于:

在此处输入图像描述

BOOKING.DAY 是没有时间的日期。

要检查给定地点是否在给定日期预订,只需在 BOOKING 中搜索相应行的存在。要预约多天,请在 APPOINTMENT 中插入一行,在 BOOKING 中插入几行相应的行。

注意:此模型不会强制同一约会天数的连续性。如果这很重要,您将不得不通过非声明性方式(例如触发器或在应用程序级别)强制执行它。

注意:如果您没有与除客户以外的约会相关的任何信息,您可以完全删除 APPOINTMENT 表并将 CLIENT 直接连接到 BOOKING。


也可以使用替代设计,其中 BOOKING 包含一个时期(而不仅仅是一天),但这会使避免重叠时期变得复杂(它可能需要结合触发器和仔细锁定)。

于 2012-06-21T15:35:21.933 回答