我正在创建一个预订系统。使用c#,如何检查预订是否与现有预订不冲突?例如,如果在该时间期间预订了房间,则用户无法预订。检查可用性按钮用于检查数据库中现有预订是否存在任何冲突。
数据库:
设计
代码:
答案 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,那么您就会发生预订冲突。