大学生就业咨询系统数据库课程设计mysql环境课案

INNER JOIN region ON belong.addrid = region.id INNER JOIN majorinfo ON request.majorid = majorinfo.id

INNER JOIN company ON belong.comid = company.id AND request.comid = company.id;

4.4 约束设计

alter table belong add constraint FK_Reference_4 foreign key (id) references region (id) on delete restrict on update restrict; alter table belong add constraint FK_Reference_5 foreign key (com_id) references company (id) on delete restrict on update restrict; alter table request add constraint request_ibfk_1 foreign key (comid) references company (id);

alter table request add constraint request_ibfk_2 foreign key (majorid) references major (id);

4.5 存储过程设计

DELIMITER $$ CREATE

/*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE

`colstuvoccounsys`.`request_major`(IN

majorname

VARCHAR(20),OUT count_num INT) /*LANGUAGE SQL | [NOT] DETERMINISTIC

| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'*/ READS SQL DATA BEGIN

13

SELECT COUNT(*) FROM request WHERE major=majorname; END$$

DELIMITER ;

DELIMITER $$ CREATE

/*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE

`colstuvoccounsys`.`company_size`(IN

companysize

VARCHAR(10),OUT count_num INT) /*LANGUAGE SQL | [NOT] DETERMINISTIC

| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'*/ READS SQL DATA BEGIN

SELECT COUNT(*) FROM company WHERE size=companysize; END$$

DELIMITER ;

4.6 函数设计

DELIMITER $$ CREATE

/*[DEFINER = { user | CURRENT_USER }]*/

FUNCTION `colstuvoccounsys`.`funk_company`(companysize VARCHAR(20))

14

RETURNS VARCHAR(40) /*LANGUAGE SQL | [NOT] DETERMINISTIC

| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'*/ BEGIN

RETURN (SELECT *FROM company GROUP BY size HAVING size=companysize); END$$

DELIMITER ;

DELIMITER $$ CREATE

/*[DEFINER = { user | CURRENT_USER }]*/

FUNCTION `colstuvoccounsys`.`funk_request`(companymajor VARCHAR(20)) RETURNS VARCHAR(40) /*LANGUAGE SQL | [NOT] DETERMINISTIC

| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'*/ BEGIN

RETURN (SELECT * FROM request GROUP BY major HAVING major=companymajor); END$$

DELIMITER ;

15

4.7 触发器设计

/*company表触发器*/ CREATE TRIGGER companyid AFTER UPDATE ON company FOR EACH ROW UPDATE request SET comid=new.id WHERE comid =old.id;

16

第五章 个人总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次课程设计增加很多认识,在拿到课程设计题目时,没有像以前一样马上开始动手写代码,我先做了整体的分析,把要设计的表,表的属性,表间的关系全部弄清楚,并画了相应的关系图和E-R图,从而也就基本形成了这次设计的整体构架。在写代码的过程中明显感觉到很轻松,就是照着所设计的思路一步一步地进行。并得到以下总结:首先,流程是一切的根源,进度控制是项目顺利进行的基础。没有大局观,面对问题和变更就会不知所措了。其次,构架是很重要的,整体框架搭好,具体细节实现起来就是顺理成章的事了。最后,实践比一切空谈和理论更能学到东西。平时学的那些理论都不过是皮毛罢了,一旦不用很快就忘记,始终要在实践中才会发现问题才会努力去解决才能成长。看到题目后就一直在思考怎么设计好这个数据库,从理论到实践,在这些日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,毕竟是第一次做这样的设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,例如在设计整体架构设计各表之间的关系时,总是考虑不够周到,数据的完整性和一致性把握不准。理论不够规范化,关系模式不够优越。为了实现这些,我也参阅了很多关于数据库设计方面的书,从中受益匪浅。在这次课程设计过程中,也有很多没有想到的地方,通过上网查找资料,完善了不少的功能。在这次课程设计过程中,我深刻感觉到自己知识的缺乏,还需要课外继续学习,不断完善和增加自身的知识和经验。最后,感谢老师的指导,让我顺利的完成了本次的数据库课程设计。

17

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4