1

我想存儲講座定時在第三規範化的數據庫信息。 講座的ER圖信息如下:數據庫設計的講座安排爲單場

ER Diagram of the Lecture Info.

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

現在,用戶通過給演講地點,開始時間,結束時間爲課程添加新的日程安排和演講日( S)。我分別加入表中信息如下:

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

它很容易,如果你設計出具有記錄在本週每一塊表。 (講座時間塊),假設您按照標準時間表進行操作。那麼你可以指定講座,每塊 – DevZer0

+0

能否請您進一步解釋一下嗎? –

+0

相信這將需要大約20分鐘,我給它輸入了你確定 – DevZer0

回答

2

Database Design

你可以設計一個表格名爲timetable該表能容納每週安排。您可以用時間塊和課室的二維數組完全填充它。這使您可以在屏幕上打印日程安排,而無需計算網格。網格已經預先加載到表格中。然後從lecture一個表,你可以將它們分配給timetable

+1

由於@DevZerO這個邏輯比我更有效。 –