小明:嘿,小李!听说你最近在开发一个员工宿舍管理系统?能给我讲讲吗?
小李:当然可以!这个系统主要是用来管理宿舍信息和员工入住情况的。我们先从数据库设计开始吧。
小明:好的,那数据库怎么设计呢?
小李:我用的是SQLite,因为它轻量级且易于集成到Python项目中。首先创建两个表,一个是宿舍表(dormitory),另一个是员工表(employee)。
import sqlite3
def create_tables():
conn = sqlite3.connect('dormitory.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS dormitory (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
capacity INTEGER NOT NULL
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS employee (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
dormitory_id INTEGER,
FOREIGN KEY(dormitory_id) REFERENCES dormitory(id)
)
''')
conn.commit()
conn.close()
if __name__ == "__main__":
create_tables()
]]>
小明:看起来不错!接下来怎么操作数据呢?
小李:我们可以编写一些简单的增删改查函数来处理数据。比如添加一个新的宿舍。
def add_dormitory(name, capacity):
conn = sqlite3.connect('dormitory.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO dormitory (name, capacity) VALUES (?, ?)', (name, capacity))
conn.commit()
conn.close()
if __name__ == "__main__":
add_dormitory("A栋", 50)
]]>
小明:很棒!那么对于知识库部分呢?
小李:知识库可以存储常见问题解答(FAQ)。同样,我们可以用SQLite存储这些数据。
def add_faq(question, answer):
conn = sqlite3.connect('knowledge_base.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO faq (question, answer) VALUES (?, ?)', (question, answer))
conn.commit()
conn.close()
if __name__ == "__main__":
add_faq("如何申请宿舍?", "请联系人事部提交申请表。")
]]>
小明:太酷了!这样我们就有了宿舍管理和知识库的功能。
小李:没错,这只是基础版本。未来还可以扩展更多功能,比如用户界面或者API接口。