我有一个网站要求用户输入他们可以教授的日期和时间。例如,教授可以在周一下午1:00到下午2:00以及周二下午2:00到下午4:00进入。
目前,我使用serialize将数据存储在名为“availability”的列中的MySQL表中。我带周一+ 1300 + 1400和周二+ 1400 + 1500并序列化这两个。然后我使用explode()来提取星期一,1300,1400等。
我觉得应该有更好的方法来做到这一点。每次学生想要看到教师的可用性时,我都需要提取这些信息,我认为目前这种方法效率不高。
你能告诉我一个更好的解决方案吗?
答案 0 :(得分:2)
您当前的解决方案将不允许您根据数据库本身的可用性进行搜索。您需要获取序列化数据,反序列化然后检查它,这将是非常昂贵的。
你应该做的是设置一个看起来像这样的表:
User_id | Day | Start_Time | End_Time
现在,如果具有user_id的用户在星期一下午2-3点和星期五下午4点到5点免费,则在此表中添加两个条目
1 | Mon | 1400 | 1500
1 | Fri | 1600 | 1700
您现在可以在数据库本身轻松搜索,过滤,排序等。