MySQL成績管理系統(tǒng)數(shù)據(jù)庫設(shè)計說明
CREATE DATABASE IF NOT EXISTS scores; USE scores; CREATE TABLE IF NOT EXISTS students( s_id INT NOT NULL AUTO_INCREMENT, s_name VARCHAR(30), s_gender ENUM('男','女'), s_major VARCHAR(20), PRIMARY KEY(s_id) )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS courses( c_id INT NOT NULL AUTO_INCREMENT, c_name VARCHAR(30), PRIMARY KEY(c_id) )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS scores( s_id INT, c_id INT, score FLOAT, PRIMARY KEY(s_id, c_id), FOREIGN KEY(s_id) REFERENCES students(s_id), FOREIGN KEY(c_id) REFERENCES courses(c_id) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
該系統(tǒng)設(shè)計了三個實(shí)體表,分別為students、courses和scores表:
1. students表:用于保存學(xué)生的基本信息,其中s_id為學(xué)生的id號,s_name為學(xué)生姓名,s_gender為學(xué)生性別,s_major為學(xué)生專業(yè)。
2. courses表:用于保存課程的基本信息,其中c_id為課程的id號,c_name為課程名稱。
3. scores表:用于保存學(xué)生的成績信息,其中s_id和c_id為學(xué)生的id號和課程的id號,score為學(xué)生的成績。
在scores表中,s_id和c_id作為聯(lián)合主鍵來保證表中每個學(xué)生和課程的成績信息是唯一的。同時,使用外鍵約束來保證每個學(xué)生和課程的id號在students表和courses表中都存在。