我所拥有的,包含以下内容的设备库存:
我租用的所有设备都用于各种活动(派对,婚礼等),这些设备与其他应用程序一起使用,以跟踪食品订单以帮助服务员。
现在我计划开发一个网络应用程序,它可以帮助我查看是否有可用的设备来计划事件和租用我的设备。例如:某人计划在2017年8月1日举办1场活动,需要3台打印机3台电话3台路由器和1台UPS,另一台客户将在20.07.2017计划一项活动,需要4台打印机4台电话4台路由器和1台UPS,让& #39;有人说有人会在2017年7月28日发出需要3台打印机3台手机3台路由器和1台UPS的事件,如果28.07.2017日期我将提供该设备请求,我将需要检查日期选择器(在我们的例子中没有,因为在2017年8月1日有一个事件),另一个注意事项,让我们将1周的时间用于客户端返回设备,因此1周将是返回时间的差距。同样的类别设备在某种意义上被认为是相同的,对我来说,如果我有phone1或phone4可用,它将无法计算,对于我来说仍然可以免费使用1个电话,例如我可以使用例如phone1 == phone2设备(均为同型号)。
我对表格的想法是这样的:
devices_type:
id name
1 printer
2 android phone
3 router
4 UPS
devices_stock:
id id_type name is_available
1 1 printer1 0
2 1 printer2 1
3 1 printer3 1
4 1 printer4 0
5 1 printer5 1
6 2 router1 1
.....
(and same for phones,wifi and ups)
events:
id device_type device_id rented_start rented_end
1 2 6 20.07.2017 27.07.2017
2 1 2 01.08.2017 08.08.2017
3 1 3 28.07.2017 04.08.2017
最后我想选择一个日期并检查我是否可以租用设备或者不提供所需的数量,但我会从mysql表设计开始,但我觉得我错过了我的结构中的一些东西,为我的需要提供更好的桌面结构的任何帮助和建议?
答案 0 :(得分:0)
我假设这样的事情就是你所追求的,至少会显示可用的设备。
SELECT DISTINCT S.device_id, S.name AS Device_Name
FROM devices_stock S, devices_rented R
WHERE 'date' < R.rented_start AND 'date' > R.rented_end AND S.device_id = R.device_id AND S.is_available != 0