我想将讲座时序信息存储在第三个规范化数据库中。 讲座信息的ER图如下:
由于Lecture_Day
是多个值属性,所以我按如下方式设计了数据库:
LectureTimeTable:
_ID | Lecture Start Time | Lecture End Time | Lecture Loaction | Course ID FK
LectureDayTable:
_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);
}
我在添加/检索这些表中的数据时遇到了麻烦,所以我只想确保我的数据库设计不错。
感谢。
答案 0 :(得分:2)
您可以设计一个名为timetable
的表,此表可以保存您的每周计划。您可以使用2维时间块和教室进行完整填充。这使您可以在屏幕上打印计划而无需计算网格。网格已经预先加载到表中。然后,从lecture
表中,您可以将它们分配到timetable