我有一个包含用户及其每周日历的mysql表。
每个用户都可以设置自己的一周(早上,下午,晚上/通过SAT的MON)的可用性,这不会经常改变,几乎从不。
想象一下,这些用户是健身房的私人教练,或者是您可以预订的网球场......
我的问题是找到正确的查询(或者甚至可能重新考虑我将数据存储在mysql中的方式),以便外部网络用户根据3个检查按钮检查它们的可用性 {{ 1}}
所以我希望我的网络用户访问我的网站并检查/取消选中这些按钮,以便查看哪一个(私人教练或其他)可用
所以,如果我检查早上我只能看到可用的人,也(但不仅仅是),在早上,(因为私人教练可以在早上也可以在下午使用等。)..
这可能听起来很容易,但我很难......
感谢任何帮助
谢谢!
答案 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或任意组合。
如果您需要更具体的帮助,您自己的表格结构的示例将会有所帮助。