gpt4 book ai didi

mysql - 单门类(class)排课数据库设计

转载 作者:行者123 更新时间:2023-11-29 06:48:26 26 4
gpt4 key购买 nike

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

ER Diagram of the Lecture Info.

由于 Lecture_Day 是多值属性,所以我将数据库设计如下:

讲座时间表:

_ID |讲座开始时间 |讲座结束时间 |讲座地点 |类(class) ID FK

LectureDayTable:

_ID |讲座时间 ID FK |类(class)编号 FK |讲座日

创建这些表的查询如下:

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)
);

现在,用户通过提供讲座地点、开始时间、结束时间和讲座日期来为类(class)添加新的时间表。我将这些信息分别添加到表格中,如下所示:

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);
}

我在从这些表中添加/检索数据时遇到了麻烦,所以我只想确保我的数据库设计不错。

谢谢。

最佳答案

Database Design

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

关于mysql - 单门类(class)排课数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17248963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com