如何确保预订之间没有冲突?

时间:2018-01-20 19:49:34

标签: c# asp.net

我正在创建一个预订系统。使用c#,如何检查预订是否与现有预订不冲突?例如,如果在该时间期间预订了房间,则用户无法预订。检查可用性按钮用于检查数据库中现有预订是否存在任何冲突。

数据库:

Database

设计

Design

代码:

Code

1 个答案:

答案 0 :(得分:1)

实施完全取决于您,但您需要RoomIsAvailable方法。这将包括room_id和请求的start_time以及end_time

bool RoomIsAvailable(int roomId, DateTime startTime, DateTime endTime) 
{
    // your implementation
}

然后,这将调用SQL查询,该查询将计算具有该ID的房间的预订数量,并且具有在请求的结束时间之前的开始时间和在请求的开始时间之后的结束时间。这会使用一些SQL,就像这样。

SELECT 
    COUNT(0) 
FROM Meeting 
WHERE 
    room_id = @RoomId AND 
    start_time < @EndTime AND 
    end_time > @StartTime

如果从SQL返回的计数大于0,那么您就会发生预订冲突。