1

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

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 

我的问题是如何插入星期二时间表(对于相同的时间表 id)?

如果回答它最明显!:)

4

1 回答 1

2

你应该为此做几张桌子。

看到它在行动!

设置:

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;
于 2014-08-22T17:36:13.543 回答