议程/可用性查询的问题

时间:2010-09-10 16:05:43

标签: mysql

我有一个包含用户及其每周日历的mysql表。

每个用户都可以设置自己的一周(早上,下午,晚上/通过SAT的MON)的可用性,这不会经常改变,几乎从不。

想象一下,这些用户是健身房的私人教练,或者是您可以预订的网球场......

我的问题是找到正确的查询(或者甚至可能重新考虑我将数据存储在mysql中的方式),以便外部网络用户根据3个检查按钮检查它们的可用性 {{ 1}}

所以我希望我的网络用户访问我的网站并检查/取消选中这些按钮,以便查看哪一个(私人教练或其他)可用

所以,如果我检查早上我只能看到可用的人,也(但不仅仅是),在早上,(因为私人教练可以在早上也可以在下午使用等。)..

这可能听起来很容易,但我很难......

感谢任何帮助

谢谢!

2 个答案:

答案 0 :(得分:2)

这不是一个算法问题,这更像是一个DBA问题。您很可能拥有用户表和可用性表。

user:
    userid
    ...

availability:
    userid
    day
    timeofday

当给出诸如星期一星期三上午下午(假设关系是(星期一或星期三)和(早上或下午))的查询时,你可以进行查询,例如。

SELECT userid FROM availability WHERE day='wednesday' OR day is 'monday' AND timeofday='morning' OR timeofday='afternoon'

答案 1 :(得分:1)

此问题的答案取决于您的数据库结构。如果您将可用时间存储为1,2,3或任何12,13,123,23的组合,那么您可以简单地使用 MYSQL正则表达式根据输入复选框标准限制结果。

我会建议像:

SELECT trainer FROM trainer_table WHERE availaility regexp '[Limiting Criteria]' 

在上面的代码中,只需使用您希望返回的字段名称替换培训师。然后将trainer_table替换为您的表名,最后将限制标准替换为限制文本,可以是1或2或3或任意组合。

如果您需要更具体的帮助,您自己的表格结构的示例将会有所帮助。