大家好!今天我们来聊聊怎么做一个超酷的“教材发放系统”。这个系统特别适合师范大学,因为大学里的教材管理有时候真的很头疼。不过别担心,我们今天就用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()
怎么样?是不是很简单?通过这样的系统,师范大学可以轻松管理教材发放了。以后再也不用担心发错书啦!