我有点,开端和终点(删除提及资源的例子,以更明确地说明):
class Reservation(db.Model):
fromHour = db.DateTimeProperty()
toHour = db.DateTimeProperty()
fromToRange = db.ComputedProperty(lambda x: [x.fromHour, x.toHour])
并且希望添加另一个保留,如果它没有overlaps 之前的核查——如何在谷歌应用引擎中表达这种质问。
<>1st 我用list property,但double inequalityfils/strong>不可行。 它应从1 <,到2,从1 >,到1 >,到2和1个结果,无论如果数据增加,费用如何。
fromHour = datetime.datetime(2012, 04, 18, 0, 0, 0)
toHour = datetime.datetime(2012, 04, 18, 2, 0, 0)
reservation = Reservation(fromHour = fromHour, toHour = toHour, colors = [ white , black ])
reservation.put()
self.response.out.write( <p>Both %s</p> % fromHour)
self.response.out.write( <ol> )
for reservation in Reservation.all()
.filter( fromToRange > , fromHour)
.filter( fromToRange <= , fromHour):
self.response.out.write( <li>%s</li> % (reservation.fromToRange))
self.response.out.write( </ol> )
我发现another Solutions,我可以使用包含日数的附加财产(这将是每份保留范围天数清单),因为需要检查日数,以缩小数据扫描,检查每份记录,如果新保留不重叠的话。
请帮助并提供一些答案,说明如何进行最佳查询,以发现重叠的保留——可能的话,在谷歌应用发动机中,时间范围问题有快速的解决方案,或者没有得到支持。