最后一次记录,说一说数据库的安全性。
一、一致性控制
为了保证事务的一致性,可以采用显示事务语句以及在数据库中添加完整性约束。比如在还书时候,要同时修改用户的用户表中的剩余借书本数,借阅记录中的已还选项以及图书表中剩余本数。这个时候可以有两个策略:
1、采用触发器,在MySQL中定义触发器:(仅举个例子)
DELIMITER $$CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER`db_book`.`Borrow`
AFTERINSERT
ON`db_book`.`t_borrow`FOR EACH ROW BEGIN
UPDATE t_user SET borroNumRem=borrowNumRem-1 WHERE id=(SELECT userID FROMinserted);--修改用户表UPDATE t_book SET numer=number-1 WHERE id=(SELECT bookId FROMinserted);--修改图书表END$$
DELIMITER ;
2、在应用软件中做三个表修改
但是这样感觉出错了的话也不太好知道,最终采用在应用软件中分别对三个表进行操作。这样计算定期未还扣钱事件好操作一点,在应用程序里改参数还是比较习惯的。
二、并发控制
首先关于一个用户不能两次登录。如果是JAVA EE可以用web端的session:http://www.cnblogs.com/loveweiwei/p/4139668.html
但是这个由于不是网络,我也不知道怎么办,由于时间关系没空细