大家好!今天我们来聊聊怎么做一个超酷的“教材发放系统”。这个系统特别适合师范大学,因为大学里的教材管理有时候真的很头疼。不过别担心,我们今天就用Python和SQLite来搞定它。
首先,我们需要一个简单的数据库结构。我们可以想象一下,每个学生都有自己的信息,比如学号、姓名啥的;然后每种教材也有自己的信息,比如书名、ISBN码等。最后,我们要记录每个学生领了哪些教材。所以,我们的数据库至少需要三个表:学生表、教材表和领书记录表。
先来看学生表的创建代码:
import sqlite3
conn = sqlite3.connect('university.db')
cursor = conn.cursor()
# 创建学生表
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
student_id TEXT UNIQUE NOT NULL
)
''')
conn.commit()
conn.close()
这段代码会创建一个名为students的表,里面包含id(自增主键)、name(学生名字)和student_id(学号)。注意student_id是唯一的哦,这样就不会重复啦。
接着是教材表:
conn = sqlite3.connect('university.db')
cursor = conn.cursor()
# 创建教材表
cursor.execute('''
CREATE TABLE IF NOT EXISTS textbooks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
isbn TEXT UNIQUE NOT NULL
)
''')
conn.commit()
conn.close()
教材表就更简单了,包含id、title(书名)和isbn(国际标准书号)。同样,isbn也是唯一的。
最后,我们还需要一个记录学生领书情况的表:
conn = sqlite3.connect('university.db')
cursor = conn.cursor()
# 创建领书记录表
cursor.execute('''
CREATE TABLE IF NOT EXISTS borrow_records (
id INTEGER PRIMARY KEY AUTOINCREMENT,
student_id TEXT NOT NULL,
textbook_id INTEGER NOT NULL,
FOREIGN KEY(student_id) REFERENCES students(student_id),
FOREIGN KEY(textbook_id) REFERENCES textbooks(id)
)
''')
conn.commit()
conn.close()
这个表用来关联学生和教材,确保每个学生只能领取他们需要的书。好了,现在数据库结构就建好了!
接下来,我们还可以写一些小功能,比如添加新学生或者查询某个学生领取了哪些书。比如添加学生的代码:
def add_student(name, student_id):
conn = sqlite3.connect('university.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO students (name, student_id) VALUES (?, ?)', (name, student_id))
conn.commit()
conn.close()
怎么样?是不是很简单?通过这样的系统,师范大学可以轻松管理教材发放了。以后再也不用担心发错书啦!

