sql - 避免约会冲突 Access

标签 sql database ms-access ms-access-2010

我有三个表:

Employee(Id,name etc)
Appointment(Id,date,time,employee id, clientid etc)
Client(Id,name etc) 

Employee 表与 Appointment 表和 Client 表都是一对多的。

然而,我想要实现的是允许系统防止重复或冲突的约会,但我无法完全理解如何解决这个问题。我是否需要一张额外的 table ,上面有可用的时间段,以及如何将它们链接在一起?或者例如另外的员工可用性表?

或者我是否可以仅通过操纵查询来利用我已有的东西来实现我需要的东西?

非常感谢

最佳答案

我认为约会表将是必要的。它将允许您只包括可用的插槽,还可以分析员工的工作量和可用性。该表将包括每位员工每天 15 分钟的时段。您可能希望为节假日/病假/通常在一段时间内不可用添加一个表格。

编辑

我曾设想过类似的东西:

Timeslots:
EmployeeID ) Primary key
TimeSlot   ) 
JobID      - Foreign key
Status     ) And so forth
Notes      ) 

“我想和E1早点约会”

SELECT TimeSlots.EmployeeID, TimeSlots.TimeSlot, TimeSlots.JobID
FROM TimeSlots
WHERE TimeSlots.EmployeeID=1
AND TimeSlots.TimeSlot Between #2/9/2012 9:0:0# And #2/9/2012 11:30:0#

“我想在上午 9:00 预约”

SELECT TimeSlots.EmployeeID, TimeSlots.TimeSlot, TimeSlots.JobID
FROM TimeSlots
WHERE TimeSlots.TimeSlot Between #2/9/2012 9:0:0# And #2/9/2012 9:30:0#

关于sql - 避免约会冲突 Access ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9194654/

相关文章:

android - 如何通过sql查询进行日期比较?

c# - 富文本框追加查询 C#

ms-access - Microsoft Visual Basic 运行时错误

php - 在sql查询中调用用户定义的函数

Mysql - 如何获取varchar列的最大值

mysql - 替换子查询

sql - 从字符串 asp 和 ms Access 查询中转义特殊字符

sql - 简单的查询需要很长时间

mysql - 通过终端在 InfluxDB 中创建表

sql - (未成功)测试Oracle SQL中索引的效果