sql – 在预订体系中查找空闲插槽
在 my question about searching for date ranges我实行简化题目,有时中提出了一个差异的更简朴的题目. 而不是通过编辑使该题目伟大化,我将问我现实想要的题目. 我有两个表属性和预订.预订具有属性的外键以及开始和竣事日期. 用户正在搜刮空闲插槽并以天为单元提供所需的一连时刻.他们还提供他们感乐趣的一系列开始日期.因此,搜刮将按以下方法搜刮: 此刻我可以这样做: 我以为(2)在大大都环境下更有用.有没有更好的算法?是否有纯SQL办理方案. 我将行使Django,我的数据集很小,以是我也许会对’哑’的approuch感想满足,但我很想知道最好的算法是什么样的. 办理要领对您的应用措施也许有点过度 – 可是:以“写入”进程变得更伟大为价钱来改造搜刮的一种相对简朴的要领是变动??Booking表以使其成为“可用性”表. 添加一个布尔列以指示插槽是空闲照旧已预订(可能更好地保存在预订它的客户的ID中,假如插槽空闲则行使0). 从2009年1月1日开始行使一个免费插槽 – > 12月31日? 当您预订时,将空闲时段分为3个(两个插入和一个更新),预订的插槽和两个可用插槽. 继承这样做,跟着时刻框架变得越发分手,预订流程将包罗以下之一: >为或人分派一个完备的“可用插槽”(一次更新) 这并不长短常伟大的打点和搜刮进程酿成一个简朴的查询:在所需的时刻范畴内找到任何可用的槽(预订= false或customerid = 0,无论你回收哪种方法)enddate – startdate> =你想要的天数. 它使预订/可用性表的巨细翻倍,并使预订变得不那么简朴,但衡量的是搜刮进程就像它一样轻易. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |