首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >预订系统PHP + SQL的大问题

预订系统PHP + SQL的大问题
EN

Stack Overflow用户
提问于 2010-08-05 08:42:28
回答 1查看 440关注 0票数 1

我现在正在创建一个新的预订系统,私人房间的一部分已经完成,我现在有了宿舍(共享室)的一部分。

该系统的工作方式如下:

  1. 插入来日+离开日+宿舍
  2. 中有多少人系统检查DB (顺便说一句),如果房间是免费的。现在它是怎么检查的?在DB中有大量的日期--一个日期是人。例如,我们有一个有这些日期的宿舍: 05/08、05/08、05/08、05/08、06/08、06/08、06/08、07/08、07/08、07/08、07/08、07/08-所以宿舍05-07/08有4人。例如,如果这个有10个人的房间有10人中的4人,那么如果你插入7个人,你就没有位置了。
  3. 系统返回可用的房间。

现在我想做下一件事:如果有两个宿舍。所有这些都有10个人。他们都有10岁的8人,现在有4人想登记。它不会给他们因为它检查宿舍..。我想这样做,系统将计算免费名额(有10-8 + 10-8 =4在两个宿舍)。有想法吗?

我的英语不是很好,我希望你能理解我,非常感谢!

编辑:

当我在数据库中添加宿舍时:

代码语言:javascript
运行
复制
ID | room_type|            persons                   | dates
------------------------------------------------------------------------
X  |  Dorm    |How many the dorm contain. not change.| of persons coming

如果你有5次约会,那么这一天宿舍里有5个人。例如。

EN

回答 1

Stack Overflow用户

发布于 2010-08-05 10:17:24

好的,我在内存中输入这个,所以它可能需要一些微调,但它应该起到指导作用。希望能帮上忙。

1)首先,让我们创建一个临时表,在每个日期存储任意给定房间的所有固定位置:

代码语言:javascript
运行
复制
CREATE TEMPORARY TABLE room_availability
SELECT ID, DISTINCT dates, COUNT(dates) as full_slots FROM table 
WHERE UNIX_TIMESTAMP(CAST(dates AS DATE)) - UNIX_TIMESTAMP(NOW()) > 0
GROUP BY dates ORDER BY ID;

2)让我们为任何房间找出所有可用的空位:

代码语言:javascript
运行
复制
SELECT table.*, table.persons - room_availability.full_slots as free_slots
FROM table INNER JOIN room_availability ON table.ID = room_availability.ID
where table.persons - room_availability.full_slots > 0

最后,去掉临时表,你就完成了

PS: unix时间戳是用来帮助您列出未来日期的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3413045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档