学工管理系统
小明: 嗨,小华,最近我在做一个学工管理系统,遇到了一些问题。
小华: 哦?有什么问题呢?能具体说一下吗?
小明: 我在设计数据库时,对于如何存储学生信息和工作安排有些困惑。你有什么好的建议吗?
小华: 当然可以。首先,你需要一个students表来存储学生的基本信息,比如姓名、学号等。然后,再创建一个jobs表来记录工作信息,如工作类型、时间等。最后,还需要一个表来关联学生和工作,比如student_jobs表,这样就可以通过外键关联两个表。
小明: 这听起来不错!我试着写了一下:
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
student_id VARCHAR(20) UNIQUE NOT NULL
);
CREATE TABLE jobs (

id INT PRIMARY KEY AUTO_INCREMENT,
job_type VARCHAR(255) NOT NULL,
time VARCHAR(255) NOT NULL
);
CREATE TABLE student_jobs (
student_id INT,
job_id INT,
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (job_id) REFERENCES jobs(id)
);
小华: 很好,这正是我们需要的结构。接下来,让我们看看后端逻辑如何实现吧。例如,添加一个新的学生到系统中。
小明: 是的,我也在想这个问题。我尝试写了这个函数:
function addStudent($name, $studentId) {
global $conn; // 假设$conn是数据库连接对象
$stmt = $conn->prepare("INSERT INTO students (name, student_id) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $studentId);
if ($stmt->execute()) {
return true;
} else {
return false;
}
}
小华: 看起来很不错!这只是开始,还有更多功能需要我们去实现。