php - 我应该使用序列化来存储可用时间吗?

标签 php mysql

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

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

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

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

最佳答案

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

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

用户 ID |天|开始时间 |结束时间

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

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

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

关于php - 我应该使用序列化来存储可用时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13714679/

相关文章:

php - 协助创建 SQL 查询

php - 将php日期转换为mysql格式

javascript - undefined reference 错误

php - 基本 MYSQL/PHP 事件注册(数据库关系)

mysql - 我如何选择喜欢mysql中的通配符

php - 如何在 Mac 上重新安装 Xdebug

mysql - MySQL INSERT 查询是否会乱序运行

php - 使用 Docker 找不到类 ZipArchive

php - 在右侧对齐图像

php - 使用 PHP 从字符串中获取数字