我有三个表:
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/