数据库设计:触发器与表间交互

需积分: 0 0 下载量 123 浏览量 更新于2024-08-04 收藏 40KB DOCX 举报
本资源主要介绍了数据库设计中的一些关键概念和操作,涉及到多个表的设计,包括书籍信息、库存状态、封面、入库记录、报损报告、员工信息、入职离职记录、读者信息、凭证信息、积分等级、借阅记录等,并提到了触发器的使用来维护数据的一致性和完整性。 在数据库设计中,"Books" 表存储了书籍的基本信息,如编号、书名、作者、出版时间、出版社、库存数量、主题类别、价格以及状态。为了保护数据的完整性,添加了四个触发器: 1. "del_trigger" 触发器防止直接删除Books表中的元组,避免数据丢失。 2. "alt_trigger" 触发器确保当Books表中的书籍数量更新后,相应地更新"Books_state"表中的可借书数量。 3. "sta_trigger" 触发器在书籍状态变为“下架”时,将"Books_state"中的剩余数量设为0。 4. "insert_trigger" 触发器在Books表中插入新元组后,自动在"Books_state"表中创建对应记录。 "Books_state" 表记录了书籍的馆藏位置、条形码和剩余数量。"zero_trigger" 触发器在借书前检查剩余数量,若为0则阻止借阅。 "Books_cover" 表用于存储书籍的封面图像信息,而"Entry_info" 记录了书籍的入库信息,包括单号、书籍编号、入库时间、入库数量和经手员工号。 "Report_book" 表用于记录报损书籍的信息,包括单号、书籍编号、经手员工号、报损时间和处理时间,以及报损原因和状态。"Staff" 表存储员工的个人信息,包括工号、身份证号、姓名、性别和电话号码。 "Induction_info" 和"Resume_info" 分别记录员工的入职信息和简历,"Quit_info" 记录员工的离职情况。 "Readers" 表存储读者的个人信息,"Credentials" 包含读者的证件信息,如证件号、办理日期、失效日期、密码、信誉积分和累计借书数量。"score_trigger" 触发器在信誉积分变动时,根据规则更新读者状态并记录在"Handle_reader"表中,以便管理员处理。 "Rank_info" 表定义了积分等级及其对应的可借阅数量。"Record" 表记录读者的借阅历史,包括证件号、书籍编号、借阅时间、状态、预期还书时间和实际还书时间。"alterscore" 触发器根据还书状态调整读者的信誉积分。 这些触发器和表设计共同构建了一个完整的图书管理系统,确保了数据的准确性和系统的高效运行。