我正在做一个项目,我想要一些灵感或见解来解决问题。我正在编写一个应用程序,用于记录访客到祈祷中心(一个有很多房间的地方。人们来祈祷)。我们将整合一个预订系统。现在人们可以说“某某约会我来”或“每周三来”或“每周来两次”或“每月来一次”等。
我不知道如何在关系数据库中维护此类信息。任何人都可以对此提供一些见解吗?
以及如何查询数据库以查找计划在特定日期访问哪些人?
我正在做一个项目,我想要一些灵感或见解来解决问题。我正在编写一个应用程序,用于记录访客到祈祷中心(一个有很多房间的地方。人们来祈祷)。我们将整合一个预订系统。现在人们可以说“某某约会我来”或“每周三来”或“每周来两次”或“每月来一次”等。
我不知道如何在关系数据库中维护此类信息。任何人都可以对此提供一些见解吗?
以及如何查询数据库以查找计划在特定日期访问哪些人?
这个模式应该足以让你开始
VISITORS
id
name
... other atomic data
RESOURCES
id
name
... other atomic data
RESERVATIONS
id
visitor
resource
fromdate
tilldate
因此,如果我想在 11 月 19 日 10:00 到 12:00 预订 200 号房间,预订表中会有一条记录,其中“访客”字段指向我在访客表中的条目,即“资源”字段指向资源表中房间 200 的条目,“fromdate”将等于 10:00 19-11-2012,“tilldate”将等于“12:00 19-11-2012”。
您可以编写查询来显示在特定日期/时间保留了哪些资源,例如
select resources.name, visitors.name
from resources inner join reservations on resources.id = reservations.resource
inner join visitors on reservations.visitor = visitors.id
where reservations.fromdate <= "2012-11-19 06:00"
and reservations.tilldate >= "2012-11-19 23:59"
和查询显示在给定时间哪些资源是空闲的
select resources.name
from resources
where not exists (select 1 from reservations
where reservations.resource = resources.id
and reservations.fromdate >= "2012-11-19 10:00"
and reservations.tilldate <= "2012-11-19 12:00")
如果有人说“我每周三都来”,您的应用程序必须足够聪明,可以根据所需的资源、日期和时间在“预订”表中插入几行。
另外,请参阅此问题:Reservation 站点的数据库表