在数据库中表示时间表

我想在mysql数据库上表示时间表。 我有一个想法,我应该有三个表: 一张
classdetails
表 - 包含课程容量,课堂名称等。 一个
class_sessions
表:会话的start_time和end_time, a
class_unit
表:课程名称(MAT003.et.c) 在
class_sessions
表和
class_unit
表中也有适当的外键。 最终我希望能够查询“免费”类(在运行查询时目前没有类的类)并返回其名称,例如(Room 5b) 我列出的表格是否足以满足手头的查询? 如何使这更好的任何想法将不胜感激。     
已邀请:
这就是你所说的,但我仍然没有100%自信你说的是你想要的。 :-)
CREATE TABLE rooms (
  room_num VARCHAR(10) NOT NULL PRIMARY KEY
);

INSERT INTO rooms VALUES 
  ('5B'),
  ('5C'),
  ('5D');

CREATE TABLE class_rooms (
  class VARCHAR(15) NOT NULL,
  room_num VARCHAR(10) NOT NULL,
  CONSTRAINT room_nm_fm_rooms FOREIGN KEY (room_num) REFERENCES rooms(room_num),
  PRIMARY KEY (class, room_num)
);

INSERT INTO class_rooms VALUES 
  ('Algebra', '5B'),
  ('Calculus','5C'),
  ('Discrete Math', '5C');
完成后,获取未使用房间号的一种方法是使用SELECT ... WHERE ... NOT IN查询。这可能不是最快的,但根据我的经验,这是最容易理解的语法。
SELECT room_num 
FROM rooms 
WHERE room_num NOT IN (SELECT room_num FROM class_rooms);
    

要回复问题请先登录注册