1

我想将 Lectures Timing 信息存储在 3rd Normalized Database 中。Lecture Info的ER图如下:

讲座信息的 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);
}

我对从这些表中添加/检索数据感到不安,所以我只想确保我的数据库设计不错。

谢谢。

4

1 回答 1

2

数据库设计

你可以设计一个叫做timetable这张表的表可以保存你每周的日程安排。你可以用一个二维的时间块和教室数组来填满它。这使您可以在屏幕上打印时间表,而无需计算网格。网格已经预加载到表中。然后从您的表中lecture可以将它们分配给timetable

于 2013-06-22T09:05:40.847 回答