我有一个mysql表与用户和他们的每周日历。
每个用户都可以为一周设置自己的可用性(上午、下午、夜间/通过SAT),而且这种情况不会经常改变,几乎永远不会改变。
假设那些用户是健身房的私人教练,或者网球场,你可以预订.
我在这里的问题是找到正确的查询(甚至重新考虑我在mysql中存储数据的方式),以便外部web用户根据3个[o]morning, [o]afternoon, and [o]night
复选按钮检查这些数据的可用性。
因此,我希望我的web用户访问我的网站,检查/取消这些按钮,以确定哪一个(私人教练,或其他)是可用的。
因此,如果我检查早晨,我只能看到可用的人,也(但不仅),在早上,(因为私人教练可以在上午也可以在下午,等等)。
听起来可能是个容易的问题,但我现在很难.
任何帮助都是非常感谢的。
谢谢!
发布于 2010-09-10 16:17:48
这不是一个真正的算法问题,这更像是一个DBA问题。您很可能有一个用户表和一个可用性表。
user:
userid
...
availability:
userid
day
timeofday
当给定一个查询(如星期一、星期三、上午)(假设关系是(星期一或星期三)和(上午或下午))时,您可以执行如下查询。
SELECT userid FROM availability WHERE day='wednesday' OR day is 'monday' AND timeofday='morning' OR timeofday='afternoon'
发布于 2010-09-14 10:08:31
这个问题的答案将取决于您的DB结构。如果将可用时间存储为1、2、3或12、13、123、23的任何组合,则可以使用MYSQL正则表达式根据输入复选框条件限制结果。
我建议你这样做:
SELECT trainer FROM trainer_table WHERE availaility regexp '[Limiting Criteria]'
在上面的代码中,只需将训练器替换为您希望返回的字段的名称。然后用表的名称替换trainer_table,最后用限制文本替换限制条件,无论是1、2、3还是任何组合。
如果您需要更具体的帮助,那么您自己的表结构的示例将是有帮助的。
https://stackoverflow.com/questions/3686247
复制相似问题