據給定的需求,我們可以設計一個關聯式資料庫綱要來管理ABC大學的教務資料。以下是設計出的資料庫綱要,包括各個關聯表格及其主鍵和外來鍵。
1. 學系表(DEPARTMENT)
sql
複製程式碼
CREATE TABLE DEPARTMENT (
DeptId INT PRIMARY KEY,
DeptName VARCHAR(255) NOT NULL
);
2. 課程表(COURSE)
sql
複製程式碼
CREATE TABLE COURSE (
CrsId INT PRIMARY KEY,
CrsName VARCHAR(255) NOT NULL,
CrsDescrip TEXT,
CrsCredit INT NOT NULL,
DeptId INT,
FOREIGN KEY (DeptId) REFERENCES DEPARTMENT(DeptId)
);
3. 學生表(STUDENT)
sql
複製程式碼
CREATE TABLE STUDENT (
StudId INT PRIMARY KEY,
StudName VARCHAR(255) NOT NULL,
DeptId INT,
FOREIGN KEY (DeptId) REFERENCES DEPARTMENT(DeptId)
);
4. 學生電子信箱表(STUDENT_EMAIL)
sql
複製程式碼
CREATE TABLE STUDENT_EMAIL (
EmailId INT PRIMARY KEY,
StudId INT,
StudEmail VARCHAR(255) NOT NULL,
FOREIGN KEY (StudId) REFERENCES STUDENT(StudId)
);
5. 教授表(PROFESSOR)
sql
複製程式碼
CREATE TABLE PROFESSOR (
ProfId INT PRIMARY KEY,
ProfName VARCHAR(255) NOT NULL,
ProfRank VARCHAR(255),
DeptId INT,
FOREIGN KEY (DeptId) REFERENCES DEPARTMENT(DeptId)
);
6. 課程教授關係表(COURSE_PROFESSOR)
sql
複製程式碼
CREATE TABLE COURSE_PROFESSOR (
CrsId INT,
ProfId INT,
PRIMARY KEY (CrsId, ProfId),
FOREIGN KEY (CrsId) REFERENCES COURSE(CrsId),
FOREIGN KEY (ProfId) REFERENCES PROFESSOR(ProfId)
);
7. 學生修課表(ENROLLMENT)
sql
複製程式碼
CREATE TABLE ENROLLMENT (
StudId INT,
CrsId INT,
Grade VARCHAR(2),
PRIMARY KEY (StudId, CrsId),
FOREIGN KEY (StudId) REFERENCES STUDENT(StudId),
FOREIGN KEY (CrsId) REFERENCES COURSE(CrsId)
);
資料庫關聯與鍵
DEPARTMENT:
主鍵:DeptId
COURSE:
主鍵:CrsId
外來鍵:DeptId(參考 DEPARTMENT(DeptId))
STUDENT:
主鍵:StudId
外來鍵:DeptId(參考 DEPARTMENT(DeptId))
STUDENT_EMAIL:
主鍵:EmailId
外來鍵:StudId(參考 STUDENT(StudId))
PROFESSOR:
主鍵:ProfId
外來鍵:DeptId(參考 DEPARTMENT(DeptId))
COURSE_PROFESSOR:
主鍵:CrsId, ProfId
外來鍵:CrsId(參考 COURSE(CrsId))
外來鍵:ProfId(參考 PROFESSOR(ProfId))
ENROLLMENT:
主鍵:StudId, CrsId
外來鍵:StudId(參考 STUDENT(StudId))
外來鍵:CrsId(參考 COURSE(CrsId))
關係與說明
DEPARTMENT: 存儲學系的基本資訊。
COURSE: 存儲課程的基本資訊,每個課程隸屬於一個學系。
STUDENT: 存儲學生的基本資訊,每個學生隸屬於一個學系。
STUDENT_EMAIL: 存儲學生的電子郵件,每個學生可能有多個電子郵件。
PROFESSOR: 存儲教授的基本資訊,每個教授隸屬於一個學系。
COURSE_PROFESSOR: 表示課程與教授的關係,每個課程僅由一個教授開授,但每個教授可以開授多個課程。
ENROLLMENT: 學生的選課信息,每個學生可以修習多個課程,每個課程也可以由多個學生修習,並記錄學生在該課程的成績。
這個設計確保了資料的完整性和一致性,並能有效地管理ABC大學的教務資料。