0
我有一個表,在它的一些時隙中,例如:的PostgreSQL:免費時隙算法
#id datet userid agentid duration
+=======================================================+
|1 |2013-08-20 08:00:00 |-1 |3 |5
|2 |2013-08-20 08:05:00 |-1 |3 |5
|3 |2013-08-20 08:10:00 | 3 |3 |5
|4 |2013-08-20 08:15:00 |-1 |3 |5
|5 |2013-08-20 08:20:00 |-1 |3 |5
|6 |2013-08-20 08:25:00 |-1 |3 |5
|7 |2013-08-20 08:30:00 |-1 |3 |5
|8 |2013-08-20 08:05:00 |-1 |7 |15
|9 |2013-08-20 08:20:00 |-1 |7 |15
+=======================================================+
在上面的例子中,用戶ID機智3具有在8:10的槽。 (如果userid = -1,則表示它是一個空閒插槽)。他與代理5預約。例如,現在用戶3想要另一個時隙,但是這次是代理7。所以,該算法應該只保留7號的空閒時隙,並且可能的時隙不會重疊。這意味着,在這種情況下,只有第9條記錄纔是解決方案。 (但也許在另一種情況下,有多種解決方案)。另一件事,用戶只能與同一個代理進行一次約會。
任何想法如何實現?我正在考慮與OVERLAPS運營商,但無法弄清楚如何做到這一點。
考慮使這個更簡單,更易於閱讀。從經驗來看,人們很少回答/幫助看起來過於複雜和冗長的問題。 – eatonphil
反過來想一想。你想要所有可能的時隙,除了那些重疊的。 –
@RichardHuxton的確,但我不知道該怎麼做。這是這個話題的重點。我如何獲得所有重疊的時刻? –