我想把讲课时间信息存储在第三个规范化数据库中。
课程信息的ER图如下:
因为Lecture_Day
是多值属性,所以我将数据库设计如下:
讲师代谢:_ID | Lecture Start Time | Lecture End Time | Lecture Loaction | Course ID FK
演讲稿:_ID | Lecture Time ID FK | Course ID FK | Lecture Day
创建这些表的查询如下:
CREATE TABLE lectureTimeTable (
_id INTEGER,
startTime TEXT NOT NULL,
endTime TEXT NOT NULL,
course_ID_FK INTEGER,
FOREIGN KEY (course_ID_FK) REFERENCES CourseTable(_id),
PRIMARY KEY (_id, course_ID_FK)
);
CREATE TABLE lectureDayTable (
_id INTEGER,
classDay INTEGER NOT NULL,
classTime_ID_FK INTEGER,
course_ID_FK INTEGER,
FOREIGN KEY (course_ID_FK, classTime_ID_FK)
REFERENCES lectureTimeTable(course_ID_FK, _id),
PRIMARY KEY (_id, classTime_ID_FK, course_ID_FK)
);
现在,用户通过给出授课地点、开始时间、结束时间和授课日来为课程添加新的日程安排。我将在下表中单独添加此信息:
INSERT INTO lectureTimeTable VALUES (1, "12:00", "1:00", 1);
// and for inserting the days i am using a for loop as follows, Here the
for(i=0; i<=selectedDays.length();i++){
INSERT INTO lectureDayTable VALUES (1, selectedDays[i], 1, 1);
}
我在添加/检索这些表中的数据时遇到麻烦,所以我只想确保我的数据库设计没有问题。
谢谢。
最佳答案
您可以设计一个名为timetable
的表,这个表可以保存您的每周计划。你可以用时间块和教室的二维数组来填满它。这允许您在屏幕上打印计划,而无需计算网格。网格已预加载到表中。然后从lecture
的表中,您可以将它们分配给timetable