1. Trang chủ
  2. » Công Nghệ Thông Tin

Đồ án cơ sở dữ liệu, khoa công nghệ thông tin (3)

22 22 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 70,41 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các Procedure Trigger sẽ sử dụng trong projectThêm dự án mới Stored Procedure Create Procedure sp_insert_duanin idDuan int, in ngayBatdau DATE, in ngayKetthuc DATE, in hanHoanthanh DATE

Trang 1

Trường Đại học xây dựng Hà Nội Khoa: Công nghệ thông tin

GV hướng dẫn: Nguyễn Đình Anh

Báo cáo phân tích đồ án buổi 3

Trang 2

Phân công công việc

Nguyễn Trọng Huấn

87063 Nhân Viên, phân việc, công việc

Đồng Xuân Luyện

Thay đổi trong csdl

Thêm bảng phân việc để thể hiện mối quan hệ giữa nhân viên và công việc đồng thời cũng là

cơ sở để đánh giá mức độ trong nhân viên Loại bỏ tiêu chí nhiệt tình giờ đây đánh giá nhân viên sẽ thông qua hai tiêu chí: tiến độ hoàn thành và chất lượng công việc

Loại bỏ bảng đánh giá giờ đây tất cả đánh giá đều được sử dụng thông qua bảng phân việc

Ở bảng công việc thêm trường trangthai để xác định công việc này là dành cho dev hay tester

Mô tả mqh giữa nhân viên công việc và dự án

Trang 4

Các Procedure Trigger sẽ sử dụng trong project

Thêm

dự án

mới

Stored Procedure Create Procedure sp_insert_duan(in idDuan int, in ngayBatdau DATE, in ngayKetthuc DATE, in hanHoanthanh

DATE, in moTa VARCHAR, in ghiChu VARCHAR, in idnhanvienLead int, in idDoitac int)

BeginIf Exists(Select iddoitac from doitac where iddoitac = idDoitac) Then

If Exists(Select idnhanvien from nhavien where idnhanvien = idnhanvienlead) Then

Begin Insert into duan

(idduan,ngaybatdau,ngayketthuc,ngayhoanthanh,mota,ghichu,idnhanvienlead)

values (idDuan,ngayBatdau,ngayKetthuc,hanHoanthanh,moTa, ghiChu

, idnhanvienLead );

Insert into cungcap(iddoitac,idduan) values (idDoitac,idDuan);

EndElseSIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Mã NV không hợp lệ !';

End if;

ElseSIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Mã ĐT không hợp lệ !';

End if;

Trang 5

Cập

nhập

dự án

Stored Procedure Create Procedure sp_update_duan(in idDuan int, in

ngayBatdau DATE, in ngayKetthuc DATE, in hanHoanthanh DATE, in moTa VARCHAR, in ghiChu VARCHAR, in idnhanvienLead int)

Begin

If Exists(Select idnhanvien from nhavien where idnhanvien = idnhanvienlead) Then

Begin Update doitac Set

idduan=idDuan,ngaybatdau=ngayBatdau,ngayketthuc=ngayKetthuc,ngayhoanthanh=hanHoanthanh,mota=moTa,ghichu=ghiChu ,idnhanvienlead=idnhanvienLead

where idduan = idDuan;

End;

ElseSIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Mã

Delete from doitac where idduan=idDuan;

Delete from cung cap where idduan = idDuan;

End;

Trang 6

Stored Procedure Create Procedure sp_duan_maduan(in idDuan int)Begin

If Exists(Select idduan from duan where idduan=idDuan) Then

Select

idduan,ngaybatdau,ngayketthuc,ngayhoanthanh,mota,ghichu,idnhanvienlead,iddoitac

From duan inner join cungcap on duan.idduan = cungcap.idduan Where duan.idduan=idDuan ;

Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT =

Stored Procedure Create Procedure sp_duan_madoitac(in idDoitac int)Begin

If Exists(Select iddoitac from doitac where iddoitac=idDoitac) Then

Select

idduan,ngaybatdau,ngayketthuc,ngayhoanthanh,mota,ghichu,idnhanvienlead,iddoitac

From duan inner join cungcap on duan.idduan =

cungcap.idduan Where iddoitac=idDoitac ; Else

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT =

'Unknown idoitac!!!';

End if;

End;

Trang 7

Stored Procedure Create Procedure sp_duan_getAll()Begin

Select * From duan inner join cungcap on duan.idduan = cungcap.idduan

Stored Procedure Create Procedure sp_doitac_getAll()Begin

Select iddoitac, tennguoilienhe, diachi, sdtfrom doitac;

where iddoitac=idDoiTac;

End

Xóa

đối tác Stored Procedure Create Procedure sp_delete_doitac(in idDoiTac int)Begin

Delete from doitac wherer iddoitac=idDoiTac;

End

Trang 8

Stored Procedure Create Procedure sp_doitac_byid(in idDoiTac int)Begin

If Exists(Select iddoitac from nhdoitac where iddoitac=idDoiTac) Then

Select iddoitac, tennguoilienhe,sdt,diachi

From doitac Where iddoitac=idDoiTac;

Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT =

'Unknown iddoitac!!!';

End if;

End;

Trang 9

Phân việc

cho Dev Stored Procedure DELIMITER ;;

CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_phanviec_dev_byIdNhanVienIdViec`(in idnv int,in idcv int)

End;

End if;

END ;;

DELIMITER ;

Trang 10

Phân việc

cho test Stored Procedure DELIMITER ;;

CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_phanviec_test_byIdNhanVienIdViec`(in idnv int,in idcv int, in numTest int)

End;

End if;

END ;;

Trang 11

CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_select_congviec_byduan`(in idda int)BEGIN

If exists(select idduan from DuAn where idduan = idda) Then

Begin Select * FROM CongViec where idduan = idda;

end;

Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Du an khong ton tai';

end if;

END ;;

DELIMITER ;

Trang 12

CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_select_congviec_byidnhanvienlead`(in idnvlead int)BEGIN

Declare maduan int;

if (idnvlead <2) Then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'nhan vien khong co quyen xem';

ElseBegin Select cv.* From Congviec cv

inner join duan da on cv.idduan = da.idduan where da.idnhanvien_lead = idnvlead;

CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_select_phanviec_by_idnhanvien`(in idnv int)BEGIN

select pv.* from phanviec pv

right outer join congviec cv on pv.idcongviec = cv.idcongviec

where pv.idnhanvien = idnv;

END ;;

DELIMITER ;

Trang 13

CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_select_phanviec_danglam_by_idnhanvien`(in idnv int)BEGIN

select pv.* from phanviec pv

right outer join congviec cv on pv.idcongviec = cv.idcongviec

where pv.idnhanvien = idnv and cv.trangthai = 1;END ;;

CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_submit_dev`(in idcv int)BEGIN

update phanviec pv set pv.LastSubmitTime

= now() where idcongviec = idcv and _role = 0;

END ;;

DELIMITER ;

Trang 14

Submit cho

nhân viên

test

Stored Procedure DELIMITER ;;

CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_submit_test`(in idcv int, in testpass int)BEGIN

declare numTest int;

set numTest = (select totaltest from phanviec whereidcongviec = idcv and _role = 1);

if(testpass > numTest) Then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'khong hop le';

else update phanviec set totalpassed = testpass where idcongviec = idcv and _role = 1;

Trigger CREATE DEFINER=`root`@`localhost` TRIGGER

`tg_after_insert_congviec` AFTER INSERT ON

`phanviec` FOR EACH ROW BEGIN

Declare idcv int;

set idcv = (Select idcongviec From phanviec where idcongviec = new.idcongviec and _role=0);

Update congviec set trangthai = 1 where idcongviec

Trigger CREATE DEFINER=`root`@`localhost` TRIGGER

`tg_after_insert_congviec` AFTER INSERT ON

`phanviec` FOR EACH ROW BEGIN

Declare idcv int;

set idcv = (Select idcongviec From phanviec where

Trang 15

đang làm

sàng hoàn

thành

idcongviec = new.idcongviec and _role=0);

Update congviec set trangthai = 1 where idcongviec

in startDate date, in endDate date)begin

declare passed, total int;

set passed = (select sum(totalpassed) from phanviec where LastSubmitTime between

startDate and endDate and idnhanvien = idNV);

set total = (select sum(totaltest) from phanviec where LastSubmitTime between startDate and endDate and idnhanvien = idNV );

select ((passed / total) * 100) as result;end

Login Stored

Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_login`(in user_id char(50), in

pass_hash char(128))begin

select nhanvien.* from nhanvien inner join login on nhanvien.idnhanvien = login.idnhanvien

where login.user_name = user_id and login.hashed_code = pass_hash;

end

Trang 16

Tạo nhóm Stored

Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_create_nhom`(in idNVLEAD

int, in idDuAn int, in ten_nhom char(100))begin

if (select count(idduan) from duan where idduan = idNVLEAD) = 0 then

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT =

Trang 18

Thêm nhân viên

vào nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_add_nhanvien_to_nhom`(in

idNV int, in idNhom int)begin

if (select count(idnhom) from nhom where idnhom = idNhom) = 0 then

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error';

end

Trang 19

Xóa nhân viên

khỏi nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_delete_nhanvien_from_nhom`(in idNV int, in idNhom int)

= 1 where idnhanvien = idNV;

Trang 20

`sp_hard_delete_nhom_by_duan`(in idDuan int)begin

delete from chitiet nhom where idnhom in (select idnhom from nhom where idduan = idDuan);

delete from nhom where udnhom in (selectidnhom from nhom where idduan = idDuan);end

Đổi tên nhóm Stored

Trang 21

Đổi trưởng nhóm

cho nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE

`sp_change_idnvlead_phongban`(in idphongban_change int, in idnhanvien_new int)stage_1: BEGIN

DECLARE idnhanvien_temp INT DEFAULT 0;

IF (SELECT idnhanvien FROM nhanvien WHERE idnhanvien = idnhanvien_new) IS NULLTHEN

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'can not find idnhanvien';

LEAVE stage_1;

END IF;

SET FOREIGN_KEY_CHECKS = 0;UPDATE phongban

SET idnhanvienlead = idnhanvien_new;

SET FOREIGN_KEY_CHECKS = 1;END

Tạo phòng ban Stored

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'con_not_find_id_error';

END IF;

insert into phongban (idnhanvienlead, tenphongban, delete_flag) values (idNV, NewName, 0);

Trang 22

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'con_not_find_id_error';

ban Stored Procedure delimiter $$

create procedure sp_change_name_phongban (in idPhongBan int, in NewName char(100))

begin

IF (SELECT idphongban FROM phongban WHERE idphongban = idPhongBan) ISNULL THEN

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'con_not_find_id_error';

END IF;

update phongban set tenphongban = NewName where idphongban = idPhongBan;end $$

Ngày đăng: 13/10/2021, 10:46

HÌNH ẢNH LIÊN QUAN

Thêm bảng phân việc để thể hiện mối quan hệ giữa nhân viên và công việc đồng thời cũng là cơ sở để đánh giá mức độ trong nhân viên - Đồ án cơ sở dữ liệu, khoa công nghệ thông tin (3)
h êm bảng phân việc để thể hiện mối quan hệ giữa nhân viên và công việc đồng thời cũng là cơ sở để đánh giá mức độ trong nhân viên (Trang 2)

TỪ KHÓA LIÊN QUAN

w