【发布时间】:2010-12-31 21:06:40
【问题描述】:
作为参考,这个问题令人困惑,所以感谢所有帮助解决这个问题的人。
我正在尝试在事件长度不同的预订程序中定位潜在的事件冲突。
(a ≤ x && e ≥ y) || (a ≥ x && e ≤ y) || (a ≤ x && e ≤ y) || (a ≥ x && e ≥ y)
我正在使用 DataMapper 来完成此操作,但我之前的查询是错误的。然后我想出了上述内容,但我不确定如何将其转换为查询。下面是我对reference的不正确查询。
class Table
def is_available?
return false if (TableBooking.all(:at.lte => params[:at], :at.gt => params[:ending], :ending.gt => params[:at], :ending.gte => params[:at]).count > 0)
end
end
【问题讨论】:
-
这个比较对我来说毫无意义——除了 x 和 y 点之外,前两个比较是互斥的。随后的测试会检查其他范围,但四个范围之一将返回 true。
-
正是我的想法 OMG,测试总是正确的!
标签: sql ruby logic datamapper