当前位置: 首页>数据库>正文

mysql创建一个为网上书店的数据库 mysql创建图书馆的数据库

环境配置:

Wamp就是Windows Apache Mysql PHP集成安装环境,即在window下的apache、 phpmysql的服务器软件。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定。在端口号被占用的情况下,可以在httpd:conf文件中将端口换端口

 

物理结构:

1.创建触发器

触发器作用:实现复杂的非标准的数据库相关完整性规则。触发器可以对数据库中相关的表进行连环更新。

  # 在修改或删除时级联修改或删除其它表中的与之匹配的行。

  # 在修改或删除时把其它表中的与之匹配的行设成NULL值。

  # 在修改或删除时把其它表中的与之匹配的行级联设成缺省值。
(1)惩罚表和借阅表之间:由于在借阅表中,当前时间减去借阅时间如果大于理应归还时间,则需要将该条信息加入到惩罚表中,惩罚金额为超期天数*0.1,惩罚类型为超期,惩罚的读者信息,书籍信息和借阅表中的相同,由此我们可以创建该触发器;

 create trigger borrowed_punish

After update borrowed for each row

Begin

Insert into punish,values(‘’,borrowed.readerid,borrowed.bookid,”超期”,0.1*(now()-borroweddate));

Where (now()-borroweddate)>backdate;

 end$$;

(2)借阅表和归还表之间创建触发器,如果在归还表中插入一条信息,则在相应的借阅表中删除该条信息就可以了

Create  trigger borrowed_back

  after insert on back for each row

   begin

   delete from borrowed

   where back.readerid=borrowed.readerid and back.bookid=borrowed.bookid;

    end$$;

 

注意点:

(1)主码的选取相当重要,一开始,我将借阅书库中的主码设定为学生学号和书籍编号,将借阅表,归还表和惩罚表中的主码也设定为学生学号和书籍编号,乍一看,似乎没有问题,但是在处理的过程中发现如果这样做的话每插入一条信息到借阅书库中,那么在三个表中也会插入相应的信息,这样就导致不能保证实现图书的借阅,归还和惩罚信息的正确性,并且数据的冗余性比较强;

(2)约束性是数据库中不可缺少的东西,读者和书籍之间是多对多的关系,一个读者可以借阅多本图书,一本图书可以被多个读者借阅,中间的处理就交给管理员,对于具体的细节,比如续借,归还,惩罚等等是基于在借阅表中的,续借导致理应归还时间变长,归回会使续借表中的相应的信息消除,不能按期归还的信息需要加载到惩罚表中;

(3)信息安全相当重要,所以在此次课程设计中通过用户名和密码的登陆才能实现一系列的功能,并且对于借阅图书也也要二重检验来保证安全性;

(4)为了实现比较多的功能,在检索的过程中,可以提供任意类型的检索,,采用模糊搜索方法,比如Like等等,可以较大范围的实现查询,解决了部分局限性。

(5)对借阅表,归还表,书籍信息表中的数据,索引的引入加快了数据库的查询速度,在很大程度上提高了数据库性能。

 

代码链接:

链接:https://pan.baidu.com/s/1yi65NKnskei5cI7LxNe__w
提取码:ld4q


https://www.xamrdz.com/database/6a41923896.html

相关文章: