我有一个 iPhone 应用程序,用户可以在其中为一周中的每一天设置一天中不同时间的可用性。每天只有三个可用时段(早上/下午/晚上)暂时可行,但我想在未来实施时间。用户将尝试根据可用性搜索其他用户。什么是一个好的数据库架构和搜索算法来实现这个?我使用 stackmob 作为我的后端。如果有人能给我一些提示或指出一种能够搜索可用性匹配的算法,我将非常感激。我目前有一种粗略的方法 - 21 个变量(每个变量为 7 天 * 3 个时间段的布尔值)。我想找到一个更聪明的方法。
问问题
55 次
1 回答
0
我会做以下事情:
- 使用数据库中的日期/时间存储可用性。每个可用插槽都有一条记录。您使用什么时间来表示每个插槽是任意的。例如,也许早上是上午 9 点,下午是下午 1 点,晚上是下午 5 点。但是通过使用日期/时间,您可以设置自己以稍后将其更改为更精确的内容(例如开始时间、结束时间)。
- 在要求的时间范围内(例如从现在到 1 周时间)查询每个用户的可用性。让我们调用结果数组 A 和 B。
现在运行以下算法...
NSUInteger a = 0; NSUInteger b = 0; BOOL foundMatch = NO; while(a < A.count && b < B.count) { NSComparisonResult result = [A[a] compare:B[b]]; if(result == NSOrderedSame) { foundMatch = YES; break; } else if(result == NSOrderedDescending) { //a>b b++; } else { a++; } }
于 2013-04-30T19:02:51.073 回答