3

我有一个网站要求用户输入他们可以上课的日期和时间。例如,教授可以输入星期一下午 1:00 到下午 2:00 和星期二下午 2:00 到下午 4:00。

目前,我正在使用序列化将数据存储在名为“可用性”的列中的 MySQL 表中。我取 Monday+1300+1400 和 Tuesday+1400+1500 并将这两个序列化。然后我使用 explode() 提取星期一、1300、1400 等。

我觉得应该有更好的方法来做到这一点。每次学生想要查看教师可用性时,我都需要提取此信息,我认为当前的方法对此无效。

你能告诉我一个更好的解决方案吗?

4

1 回答 1

2

您当前的解决方案不允许您根据数据库本身的可用性进行搜索。您需要获取序列化数据,反序列化然后检查它,这将非常昂贵。

你应该做的是建立一个看起来有点像这样的表:

User_id | Day | Start_Time | End_Time

现在,如果具有 user_id 的用户在周一下午 2 点到 3 点和周五下午 4 点到 5 点有空,则在此表中添加两个条目

1  |  Mon  |  1400  |  1500
1  |  Fri  |  1600  |  1700

您现在可以轻松地在数据库本身上进行搜索、过滤、排序等。

于 2012-12-05T01:04:29.967 回答