【发布时间】:2011-11-27 23:33:01
【问题描述】:
我不确定如何准确地表达我的问题,但我会尽力而为。我正在尝试为驾驶学校建模数据库。我有一个“时间段”表,这样课程、测试和注册面试等活动都可以链接到工作人员的给定时间段。我提供的查询之一是能够查看工作人员的事件“时间表”。我已经构建了查询并且它正在工作,但是它连接了来自其他各种表的数据,我想查看这些表的名称以了解时间段保留用于哪些活动。
我为检查员工时间表而执行的查询如下:
SELECT Timeslot.*
FROM Timeslot
LEFT JOIN Test
ON Timeslot.Timeslot_ID = Test.Timeslot
LEFT JOIN Interview
ON Timeslot.Timeslot_ID = Interview.Timeslot
LEFT JOIN Lesson
ON Timeslot.Timeslot_ID = Lesson.Timeslot
WHERE Timeslot.Date BETWEEN CURDATE() AND (CURDATE() + INTERVAL 7 DAY)
AND Timeslot.Staff = 1;
这有效并显示下周给定工作人员的所有已注册时间段的列表。我想要的是另一个列,它会显示它是什么类型的活动,例如“课程”、“面试”或“测试”。如您所见,我目前将其作为字段存储在时间段表中,这意味着我每次插入时间段时都必须指定它。我会将数据库规范化为 3NF,并希望避免重复。有没有一种方法可以让我建模来获取表的名称,我考虑过使用 UNIONS 和许多其他东西,但可以使用一些帮助。
如果这看起来有点含糊,非常感谢和道歉。 迈克
【问题讨论】:
标签: mysql database database-design entity-relationship