我需要在我的工作中为各个地点创建一个调度程序。我需要为每个特定地点安排从早上8点到下午5点的十五分钟时段。我正试图围绕所需的数据库设计。
一些参数:
每当我勾勒出这一点时,我都违反了一些数据库规范化规则。主要目标是能够查询特定位置以查看打开的“插槽”并显示它们。任何人都知道我应该如何构建我的表,以便我刚才描述的查询不必更加努力地工作?
答案 0 :(得分:6)
每个位置都需要一个设置表,其中包含每15分钟可以预订的客户数量,打开和关闭时间等信息。实际上,您可以为每个“插槽”创建一个条目表。有开始和结束时间。
必须在应用程序层处理其余参数,例如计算其他位置的事件数量并查看它们是否已满。
event ----- id date_start date_end location_id location -------- id name max_customers start_time end_time
我建议您阅读Mozilla Calendar SQL Schema。它为形成可靠的调度日历奠定了良好的基础。
答案 1 :(得分:0)
听起来你需要至少三张桌子。我的建议是:
计划 - 存储实际计划。需要id
(IE:auto_increment),location_id
(对“LOCATIONS”表的引用),time_start
,time_end
LOCATIONS - 存储位置。需要id
(IE:auto_increment)和其他适用的信息,例如实际的location
。
规则 - 这将引用LOCATION表。您需要提供要存储的所需信息(IE:max_occupants)。这至少需要一个id
字段和location_id
字段。
现在您有三个表来存储所需的数据,LOCATIONS被其他两个引用。您可以随时在LOCATIONS表中添加“规则”,但如果您确定有其他限制等,那么将其设置为自己的表将为您提供灵活性。