为员工时间表创建数据库?

时间:2014-08-22 17:04:22

标签: mysql sql database timetable

我为员工时间表创建数据库! 我的属性是,

StaffTimeTable - TimetableID(pk),StaffID,periods,day.

每天一所学校有8个学期(员工需要参加)一个工作人员只能有一个时间表ID。

我的问题是如何使用一个timetableid创建一个数据库5天!!

一个例子

TimeTableID    StaffID  Day     period1 p2 p3     p4  p5   p6   p7   p8 

stt001         st001  Monday  maths      physics 

我的问题是我如何插入星期二的TimeTable(同时表id)?

如果回答最明显! :)

1 个答案:

答案 0 :(得分:1)

你应该为此制作几张桌子。

SEE IT IN ACTION!

SETUP:

CREATE TABLE periods (
   id int, 
   period varchar(55)
);

这个表看起来像这样

id       period
1        'maths'
2        'physics'
3        'english'
... etc

你也应该有一个像这样的日子的表

CREATE TABLE day_of_week (
    id int,
    day varchar(55)
);

这看起来像这样。

id             day
1              'Sunday'
2              'Monday'
3              'Tuesday'
4              'Wednesday'
.... etc.

你应该有一个像这样的员工表

CREATE TABLE staff (
    id int,
    staff_name varchar(55)
);

这个表看起来像这样。

id            staff_name
1             Mary
2             John
..... etc

现在你需要一个连接表。

CREATE TABLE StaffTimeTable (
    id int, -- this is the pk
    staffID int,
    periodID int,
    dayID int
);

注意:

这些id中的每一个都是其他表中主键的外键... 此外,所有主键ID都应自动递增。

全部合并

SELECT t.id, s.staff_name, d.day_name, p.period
FROM StaffTimeTable t
JOIN staff s on s.id = t.staffID
JOIN day_of_week d on d.id =  t.dayID
JOIN periods p on p.id = t.periodID
ORDER BY t.id;