Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Kỹ thuật lập trình BÀI BÁO CÁO HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ SHOP TÌNH YÊU...

Tài liệu BÀI BÁO CÁO HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ SHOP TÌNH YÊU

.DOCX
32
245
123

Mô tả:

BÀI BÁO CÁO HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ SHOP TÌNH YÊU
QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN BÀI BÁO CÁO HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ SHOP TÌNH YÊU Giảng viên hướng dẫn: TS. NGUYỄN THÀNH SƠN Danh sách sinh viên thực hiện  Tạ Văn Ngọc  Liên Thanh Hoàng Thành Phố Hồ Chí Minh, tháng 12 năm 2015 Trang 1 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN MỤC LỤC Mở đầu……………………………………………………………………… Giới thiệu hệ thống…………………………………………………………. Quy trình làm việc……………………………………………. 1. Làm việc với SQL Server………………………………………... 1.1.1 Tạo Cơ sở dữ liệu………………………………………. 1.1.2 Tạo Constraint 1.1.3 Tạo ràng buộc check 1.2 Store Procedure …………………………………............ 1.2.1 Tạo Procedure lấy tất cả thông tin từ bảng…… 1.2.2 Tạo Procedure thêm thông tin vào các bảng….. 1.2.3 Tạo Procedure sửa thông tin trong bảng………. 1.2.4 Tạo Procedure xóa các thông tin trong bảng….. 1.3 Tạo View 1.4 Tạo Function …………………………………………….. 1.5 Tạo Trigger…………………………..………………....... 1.6 Phân quyền………………………………………………. 2. Kết nối giữa SQL và C#................................................................... 3. Kết nối giữa 2 máy……………………………………………………… 4. Kết quả và ứng dụng………………………………………………… 5. Hướng giải quyết 1 số vấn đề đăng nhập Tài liệu tham khảo……………………………………………………………. Mở đầu Ngày nay với sự bùng nổ và phát triển mạnh mẽ của lĩnh vực Công nghệ thông tin, nó đang dần trở thành một phần không thể thiếu của cuộc sống con người. Công nghệ thông tin đang được phát triển và ứng dụng mạnh mẽ trong các lĩnh vực quản lý sản xuất, quản lý kinh doanh, dịch vụ, quản lý xã hội cũng như tất cả các lĩnh vực khác và quản lý bán hàng là một trong những lĩnh vực đó, thực tế đã cho thấy hiệu quả của tin học khi áp dụng vào công tác quản lý, nó đã làm giảm bớt công tác bàn giấy đồng thời góp phần đáng kể trong việc thống kê tránh những sai sót trong kinh doanh. Có thể nói tin học đã trở thành một công cụ hữu hiệu đem lại hiệu quả trong công tác quản lý và kinh doanh. Đối với công việc Quản lý một shop là tương đối phức tạp bao gồm nhiều công việc khác nhau với những nghiệp vụ khác nhau, điều đó là cho công việc quản lý trở lên khó khăn hơn, cần nhiều nhân lực và thời gian để giải quyết công việc và không tránh khởi những sai sót nhầm lẫn. Do đó cần có một phương án tốt hơn,tối ưu hơn để đem lại hiệu quả trong công việc quản lý. Trang 2 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN Trang 3 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN Giới thiệu về hệ thống: - Hệ thống quản lý shop nhằm cung cấp các chức năng quản lý sách, nhà cung cấp, nhân viên… Nhằm tạo sự thuận lợi cho việc quản lý nó. Thuận tiện cho việc thêm xóa, sửa cũng như tìm kiếm, thống kê, xem các nhà sản xuất và quản lý nhân viên. - Sơ đồ quan hệ giữa các thực thể. Chương 1: Quy trình làm việc 1. LÀM VIỆC VỚI SQL SEVER 1.1.1 TẠO DATABASE VÀ CÁC BẢNG IF EXISTS(SELECT * FROM Sys.databases WHERE Name='SHOPTINHYEU') DROP DATABASE SHOPTINHYEU GO CREATE DATABASE SHOPTINHYEU GO ------------------- TẠO BẢNG NHÀ CUNG CẤP ------------------CREATE TABLE NHACUNGCAP ( MANCC NCHAR(20) PRIMARY KEY, TENNCC NVARCHAR(100) NOT NULL, DIACHI NVARCHAR(200), SODIENTHOAI NCHAR(11), EMAIL NVARCHAR(200) ) GO --------------------- TẠO BẢNG LOẠI SẢN PHẢM--------------------CREATE TABLE LOAISANPHAM ( MALOAISP NCHAR(20) PRIMARY KEY NOT NULL, TENLOAISP NVARCHAR(100) NOT NULL, DACDIEM NVARCHAR(100) ) GO --------------------- TẠO ĐƠN VỊ TÍNH--------------------CREATE TABLE DONVITINH ( MADVT NCHAR(10) PRIMARY KEY NOT NULL, TENDVT NCHAR(20) NOT NULL, ) GO --------------------- TẠO BẢNG SẢN PHẨM --------------------CREATE TABLE SANPHAM ( MASP NCHAR(20) PRIMARY KEY NOT NULL, TENSP NVARCHAR(100) NOT NULL, MALOAISP NCHAR(20) NOT NULL FOREIGN KEY REFERENCES LOAISANPHAM(MALOAISP), MADTV NCHAR(20) NOT NULL FOREIGN KEY REFERENCES DONVITINH(MADVT), DONGIA INT NOT NULL, SOLUONGTON INT NOT NULL, VITRI NCHAR(15) NOT NULL, HINH VARBINARY(MAX) NOT NULL, GHICHU NVARCHAR(200), ) GO Trang 4 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN --------------------- TẠO BẢNG BỘ PHẬN --------------------CREATE TABLE BOPHAN ( MABOPHAN NCHAR(20) PRIMARY KEY, TENBOPHAN NVARCHAR(100) NOT NULL ) GO --------------------- TẠO BẢNG NHÂN VIÊN --------------------CREATE TABLE NHANVIEN ( MANHANVIEN NCHAR(20) PRIMARY KEY NOT NULL, TENNHANVIEN NVARCHAR(100) NOT NULL, PHAI NCHAR(4) NOT NULL, NGAYSINH DATE NOT NULL, DIACHI NVARCHAR(200), SODIENTHOAI NCHAR(11), MABOPHAN NCHAR(20) NOT NULL FOREIGN KEY REFERENCES BOPHAN(MABOPHAN), HINH VARBINARY(MAX) NOT NULL, GHICHU NVARCHAR(200), ) GO --------------------- TẠO BẢNG TÀI KHOẢN --------------------CREATE TABLE TAIKHOAN ( MANHANVIEN NCHAR(20) NOT NULL, TAIKHOAN NVARCHAR(50) NOT NULL, MATKHAU NVARCHAR(50) NOT NULL, PRIMARY KEY(MANHANVIEN,TAIKHOAN), FOREIGN KEY(MANHANVIEN) REFERENCES NHANVIEN(MANHANVIEN), ) GO --------------------- TẠO BẢNG HÓA ĐƠN NHẬP --------------------CREATE TABLE HOADONNHAP( MAHDN NCHAR(10) PRIMARY KEY, MANCC NCHAR(20) NOT NULL FOREIGN KEY REFERENCES NHACUNGCAP(MANCC), MANHANVIEN NCHAR(20) NOT NULL FOREIGN KEY REFERENCES NHANVIEN(MANHANVIEN), TONGGIATRI FLOAT, NGAYNHAP DATE NOT NULL ) GO --------------------- TẠO BẢNG CHI TIẾT HÓA ĐƠN NHẬP --------------------CREATE TABLE CHITIETHOADONNHAP ( MAHDN NCHAR(10), MASP NCHAR(20), SOLUONG INT NOT NULL, GIANHAP INT NOT NULL , PRIMARY KEY(MAHDN,MASP), FOREIGN KEY(MAHDN) REFERENCES HOADONNHAP(MAHDN), FOREIGN KEY(MASP) REFERENCES SANPHAM(MASP) ) GO --------------------- TẠO BẢNG HÓA ĐƠN BÁN --------------------CREATE TABLE HOADONBAN( MAHDB NCHAR(10) PRIMARY KEY, TENKHACHHANG NVARCHAR(100), DIACHI NVARCHAR(100), MANHANVIEN NCHAR(20)FOREIGN KEY REFERENCES NHANVIEN(MANHANVIEN), TONGTIEN FLOAT NOT NULL, NGAYBAN DATE NOT NULL ) GO --------------------- TẠO BẢNG CHI TIẾT HÓA ĐƠN BÁN --------------------- Trang 5 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN CREATE TABLE CHITIETHOADONBAN ( MAHDB NCHAR(10), MASP NCHAR(20), SOLUONG INT NOT NULL, DONGIA INT NOT NULL, PRIMARY KEY(MAHDB,MASP), FOREIGN KEY(MAHDB) REFERENCES HOADONBAN(MAHDB), FOREIGN KEY(MASP) REFERENCES SANPHAM(MASP) ) GO --------------------- TẠO BẢNG TÀI KHOẢN --------------------CREATE TABLE [dbo].[TK]( [USERNAME] [nchar](20) NOT NULL, [PASSWORD] [nvarchar](50) NOT NULL, ALTER TABLE [dbo].[TK] WITH CHECK ADD CONSTRAINT [FK_USER_NHANVIEN] FOREIGN KEY([USERNAME]) REFERENCES [dbo].[NHANVIEN] ([MANHANVIEN]) GO --------------------- TẠO BẢNG CHỨC NĂNG --------------------CREATE TABLE [dbo].[CHUCNANG]( [MACHUCNANG] [nchar](10) NOT NULL, [TENCHUCNANG] [nchar](10) NOT NULL GO --------------------- TẠO BẢNG CHỨC NĂNG --------------------CREATE TABLE [dbo].[CHITIETCHUCNANG]( [MACHUCNANG] [nchar](10) NOT NULL, [ID] [nchar](20) NOT NULL, ALTER TABLE [dbo].[CHITIETCHUCNANG] WITH CHECK ADD CONSTRAINT [FK_CHITIETCHUCNANG_CHUCNANG] FOREIGN KEY([MACHUCNANG]) REFERENCES [dbo].[CHUCNANG] ([MACHUCNANG]) GO ALTER TABLE [dbo].[CHITIETCHUCNANG] WITH CHECK ADD CONSTRAINT [FK_CHITIETCHUCNANG_USER] FOREIGN KEY([ID]) REFERENCES [dbo].[TK] ([USERNAME]) GO 1.1.2 TẠO CONSTRAINT -------------- SỬA BẢNG – TÍNH DUY NHẤT ------------------ALTER TABLE BOPHAN ADD CONSTRAINT UQ_TENBOPHANLADUYNHAT UNIQUE(TENBOPHAN) GO ALTER TABLE LOAISANPHAM ADD CONSTRAINT UQ_TENLOAISANPHAMLADUYNHAT UNIQUE(TENLOAISP) GO ALTER TABLE NHACUNGCAP ADD CONSTRAINT UQ_TENNHACCLADUYNHAT UNIQUE(TENNCC), UNIQUE(SODIENTHOAI),UNIQUE(DIACHI) GO ALTER TABLE NHANVIEN ADD CONSTRAINT UQ_THONGTINNHANVIEN UNIQUE(TENNHANVIEN,PHAI,NGAYSINH), UNIQUE(SODIENTHOAI) GO Trang 6 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN 1.1.3 TẠO RÀNG BUỘC CHECK ---------------- SỬA BẢNG - THÊM RÀNG BUỘC CHECK------------------ALTER TABLE SANPHAM ADD CONSTRAINT CK_Soluongton CHECK(SOLUONGTON >=0) GO ALTER TABLE SANPHAM ADD CONSTRAINT CK_DonGia CHECK(DONGIA >=0) GO ALTER TABLE CHITIETHOADONNHAP ADD CONSTRAINT CK_soluonghdn CHECK(SOLUONG >0) GO ALTER TABLE CHITIETHOADONNHAP ADD CONSTRAINT CK_gianhap CHECK(GIANHAP >0) GO ALTER TABLE HOADONNHAP ADD CONSTRAINT CK_tongiatri CHECK(TONGGIATRI>0) GO ALTER TABLE CHITIETHOADONBAN ADD CONSTRAINT CK_soluonghdb CHECK(SOLUONG >0) GO ALTER TABLE CHITIETHOADONBAN ADD CONSTRAINT CK_giaban CHECK(DONGIA>0) GO ALTER TABLE HOADONBAN ADD CONSTRAINT CK_tongtien CHECK(TONGTIEN >10000) GO ALTER TABLE NHACUNGCAP ADD CONSTRAINT CK_sdt1 CHECK ( SODIENTHOAI LIKE '0[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') GO ALTER TABLE NHANVIEN ADD CONSTRAINT CK_sdt2 CHECK (SODIENTHOAI LIKE '0[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') GO TẠO STORE PROCEDURE 1.2.1 Tạo Procedure lấy tất cả thông tin từ bảng 1.2 CREATE PROC spLayNhaCungCap AS BEGIN SELECT * FROM NHACUNGCAP END GO CREATE PROC spLayLoaiSanPham AS BEGIN SELECT * FROM LOAISANPHAM END GO Trang 7 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN CREATE PROC spLayDonViTinh AS BEGIN SELECT * FROM DONVITINH END GO CREATE PROC spLaySanPham AS BEGIN SELECT * FROM SANPHAM END GO CREATE PROC spLayBoPhan AS BEGIN SELECT * FROM BOPHAN END GO CREATE PROC spLayNhanVien AS BEGIN SELECT * FROM NHANVIEN END GO CREATE PROC spLayTaiKhoan AS BEGIN SELECT * FROM TAIKHOAN END GO CREATE PROC spLayHoaDonNhap AS BEGIN SELECT * FROM HOADONNHAP END GO CREATE PROC spLayCTHDN AS BEGIN SELECT * FROM CHITIETHOADONNHAP END GO CREATE PROC spLayHoaDonBan AS BEGIN SELECT * FROM HOADONBAN END GO CREATE PROC spLayCTHDB AS BEGIN SELECT * FROM CHITIETHOADONBAN END GO Trang 8 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN Create proc [dbo].[sp_CapNhatSoLuongTon] @maSP nchar(20), @SoLuongTon int as update SanPham set SoLuongTon = @SoLuongTon where MaSP = @maSP 1.2.2 Tạo Procedure thêm thông tin vào các bảng CREATE PROC spThemNhaCungCap @mancc nchar(20), @tenncc nvarchar(100), @diachi nvarchar(200), @sdt nchar(11), @email nvarchar(200) AS BEGIN TRAN BEGIN TRY INSERT INTO NHACUNGCAP VALUES (@mancc,@tenncc,@diachi,@sdt,@email) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemLoaiSP @maloaisp nchar(20), @tenloaisp nvarchar(100), @dacdiem nvarchar(100) AS BEGIN TRAN BEGIN TRY INSERT INTO LOAISANPHAM VALUES (@maloaisp,@tenloaisp,@dacdiem) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemDVT @madvt NCHAR(10), @tendvt NCHAR(20), AS BEGIN TRAN BEGIN TRY INSERT INTO DONVITINH VALUES (@madvt,@tendvt) COMMIT END TRY BEGIN CATCH Trang 9 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemSP @masp nchar(20), @tensp nvarchar(100), @maloaisp nchar(20), @madvt nchar(20), @dongia int, @soluongton int, @hinh varbinary(max), @ghichu nvarchar(200) AS BEGIN TRAN BEGIN TRY INSERT INTO SANPHAM VALUES (@masp,@tensp,@maloaisp,@madvt,@dongia,@soluongton,@hinh,@ghichu) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemBoPhan @mabp nchar(20), @tenbp nvarchar(100), @luong int AS BEGIN TRAN BEGIN TRY INSERT INTO BOPHAN VALUES (@mabp,@tenbp,@luong) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemNhanVien @manv nchar(20), @tennv nvarchar(100), @phai nchar(4), @ngaysinh date, @diachi nvarchar(200), @sdt nchar(11), @mabp nchar(20), @hinh varbinary(max), @ghichu nvarchar(200) AS Trang 10 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN BEGIN TRAN BEGIN TRY INSERT INTO NHANVIEN VALUES (@manv,@tennv,@phai,@ngaysinh,@diachi,@sdt,@mabp,@hinh,@ghichu) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemHoaDonNhap @mahdn nchar(10), @mancc nchar(20), @manv nchar(20), @tonggiatri float, @ngaynhap date AS BEGIN TRAN BEGIN TRY INSERT INTO HOADONNHAP(MAHDN,MANCC,MANHANVIEN,TONGGIATRI,NGAYNHAP) VALUES (@mahdn,@mancc,@manv,@tonggiatri,@ngaynhap) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemCTHDN mahdn nchar(10), @masp nchar(20), @soluong int, @gianhap int AS BEGIN TRAN BEGIN TRY INSERT INTO CHITIETHOADONNHAP VALUES (@mahdn,@masp,@soluong,@gianhap) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemHoaDonBan @mahdb nchar(10), @tenkh nvarchar(100), @diachi nvarchar(100), Trang 11 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN @manv nchar(20), @tongtien float, @ngayban date AS BEGIN TRAN BEGIN TRY INSERT INTO HOADONBAN(MAHDB,TENKHACHHANG,DIACHI,MANHANVIEN,TONGTIEN,NGAYBAN) VALUES (@mahdb,@tenkh,@diachi,@manv,@tongtien,@ngayban) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spThemCTHDB @mahdb nchar(10), @masp nchar(20), @soluong int, @dongia int AS BEGIN TRAN BEGIN TRY INSERT INTO CHITIETHOADONBAN VALUES (@mahdb,@masp,@soluong,@dongia) COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO 1.2.3 Tạo Procedure sửa thông tin trong bảng CREATE PROC spSuaNhaCungCap @mancc nchar(20), @tenncc nvarchar(100), @diachi nvarchar(200), @sdt nchar(11), @email nvarchar(200) AS BEGIN TRAN BEGIN TRY UPDATE NHACUNGCAP SET TENNCC=@tenncc,DIACHI=@diachi,SODIENTHOAI=@sdt,EMAIL=@email WHERE MANCC =@mancc COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH Trang 12 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN GO CREATE PROC spSuaLoaiSP @maloaisp nchar(20), @tenloaisp nvarchar(100), @dacdiem nvarchar(100) AS BEGIN TRAN BEGIN TRY UPDATE LOAISANPHAM SET TENLOAISP=@tenloaisp,DACDIEM=@dacdiem WHERE MALOAISP=@maloaisp COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spSuaDVT @madvt nchar(10), @tendvt nchar(20) AS BEGIN TRAN BEGIN TRY UPDATE DONVITINH SET TENDVT=@tendvt WHERE MADVT=@madvt COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spSuaSanPham @masp nchar(20), @tensp nvarchar(100), @maloaisp nchar(20), @madvt nchar(20), @dongia int, @soluongton int, @hinh varbinary(max), @ghichu nvarchar(200) AS BEGIN TRAN BEGIN TRY UPDATE SANPHAM SET TENSP=@tensp,MALOAISP=@maloaisp,MADVT=@madvt,DONGIA=@dongia,SOLUONGTON=@soluongton,HIN H=@hinh,GHICHU=@ghichu WHERE MASP=@masp COMMIT END TRY Trang 13 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spSuaBoPhan @mabp nchar(20), @tenbp nvarchar(100), @luong int AS BEGIN TRAN BEGIN TRY UPDATE BOPHAN SET TENBOPHAN=@tenbp,LUONG=@luong WHERE MABOPHAN=@mabp COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spSuaNhanVien @manv nchar(20), @tennv nvarchar(100), @phai nchar(4), @ngaysinh date, @diachi nvarchar(200), @sdt nchar(11), @mabp nchar(20), @hinh varbinary(max), @ghichu nvarchar(200) AS BEGIN TRAN BEGIN TRY UPDATE NHANVIEN SET TENNHANVIEN=@tennv,PHAI=@phai,NGAYSINH=@ngaysinh,DIACHI=@diachi,SODIENTHOAI=@sdt, MABOPHAN=@mabp,HINH=@hinh,GHICHU=@ghichu WHERE MANHANVIEN=@manv COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spSuaTaiKhoan @manv nchar(20), @taikhoan nvarchar(50), @matkhau nvarchar(50) AS Trang 14 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN BEGIN TRAN BEGIN TRY UPDATE TAIKHOAN SET TAIKHOAN=@taikhoan, MATKHAU=@matkhau WHERE MANHANVIEN=@manv COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO 1.2.4 Tạo Procedure xóa các thông tin trong bảng CREATE PROC spXoaNhaCungCap @mancc nchar(20) AS BEGIN TRAN BEGIN TRY DELETE FROM NHACUNGCAP WHERE MANCC =@mancc COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spXoaLoaiSP @maloaisp nchar(20) AS BEGIN TRAN BEGIN TRY DELETE FROM LOAISANPHAM WHERE MALOAISP=@maloaisp COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spXoaDVT @madvt nchar(20) AS BEGIN TRAN BEGIN TRY DELETE FROM DONVITINH Trang 15 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN WHERE MADVT=@madvt COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spXoaSanPham @masp nchar(20) AS BEGIN TRAN BEGIN TRY DELETE FROM SANPHAM WHERE MASP=@masp COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spXoaBoPhan @mabp nchar(20) AS BEGIN TRAN BEGIN TRY DELETE FROM BOPHAN WHERE MABOPHAN=@mabp COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO CREATE PROC spXoaNhanVien @manv nchar(20) AS BEGIN TRAN BEGIN TRY DELETE FROM NHANVIEN WHERE MANHANVIEN=@manv COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) Trang 16 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN END CATCH GO CREATE PROC spXoaTaiKhoan @manv nchar(20) AS BEGIN TRAN BEGIN TRY DELETE FROM TAIKHOAN WHERE MANHANVIEN=@manv COMMIT END TRY BEGIN CATCH ROLLBACK DECLARE @ErrorMessage VARCHAR(2000) SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE() RAISERROR(@ErrorMessage, 16, 1) END CATCH GO 1.3 TẠO VIEW CREATE VIEW [dbo].[TaiKhoan_All] AS SELECT dbo.TK.*, dbo.CHUCNANG.TENCHUCNANG FROM dbo.TK INNER JOIN dbo.CHITIETCHUCNANG ON dbo.TK.USERNAME = dbo.CHITIETCHUCNANG.ID INNER JOIN dbo.CHUCNANG ON dbo.CHITIETCHUCNANG.MACHUCNANG = dbo.CHUCNANG.MACHUCNANG GO -----------------------------------------------------------CREATE VIEW [dbo].[View_HDB] AS SELECT MAHDB, TENKHACHHANG, DIACHI, MANHANVIEN, TONGTIEN, NGAYBAN FROM dbo.HOADONBAN GO 1.4 TẠO FUNCTION ALTER function [dbo].[layTrangThai](@user nchar(20)) returns int as begin declare @kq int select @kq = TK.TRANGTHAI from TK where TK.USERNAME = @user return @kq end -----------------------------------------------------------------Create function laySoLuongTon(@MaSP nchar(20)) returns int as begin declare @kq int Trang 17 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN select @kq = SanPham.SoLuongTon from SanPham where SanPham.MaSP = @MaSP return @kq end -----------------------------------------------------------------Create function [dbo].[layMatKhau](@ID nchar(10)) returns nvarchar(50) as begin declare @kq nvarchar(50) select @kq = TK.PASSWORD from TK where TK.USERNAME = @ID return @kq end 1.5 TẠO TRIGGER ------------------- TẠO TRIGGER SỐ ĐIỆN THOẠI CỦA NHÀ CUNG CẤP KHÔNG ĐƯỢC TRÙNG VỚI SỐ ĐIỆN THOẠI CỦA NHÂN VIÊN ------------------CREATE TRIGGER TG_SDTNCCKHONGTRUNGSDTNV ON NHACUNGCAP FOR INSERT,UPDATE AS BEGIN DECLARE @SDT NCHAR(11) SELECT @SDT =SODIENTHOAI FROM inserted IF(@SDT IN (SELECT SODIENTHOAI FROM NHANVIEN)) BEGIN RAISERROR('So dien thoai da ton tai trong quan he NHANVIEN',16,1); ROLLBACK TRAN RETURN END END GO ------------------- TẠO TRIGGER SỐ ĐIỆN THOẠI CỦA NHÂN VIÊN KHÔNG ĐƯỢC TRÙNG VỚI SỐ ĐIỆN THOẠI CỦA NHÀ CUNG CẤP ------------------CREATE TRIGGER TG_SDTNVKHONGTRUNGSDTNCC ON NHANVIEN FOR INSERT,UPDATE AS BEGIN DECLARE @SDT NCHAR(11) SELECT @SDT =SODIENTHOAI FROM inserted IF(@SDT IN (SELECT SODIENTHOAI FROM NHACUNGCAP)) BEGIN RAISERROR('So dien thoai da ton tai trong quan he NHANVIEN',16,1); ROLLBACK TRAN RETURN END END GO Trang 18 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN ------------------- TẠO TRIGGER SỐ ĐỊA CHỈ CỦA NHÂN VIÊN KHÔNG Đ ƯỢC TRÙNG VỚI ĐỊA CHỈ CỦA NHÀ CUNG CẤP ---------------CREATE TRIGGER TG_DIACHINVKHONGTRUNGDIACHINCC ON NHANVIEN FOR INSERT,UPDATE AS BEGIN DECLARE @Diachi NVARCHAR(200) SELECT @Diachi =DIACHI FROM inserted IF(@Diachi IN (SELECT DIACHI FROM NHACUNGCAP)) BEGIN RAISERROR('Dia chi da ton tai trong quan he NHACUNGCAP',16,1); ROLLBACK TRAN RETURN END END GO ------------------- TẠO TRIGGER ĐỊA CHỈ CỦA NHÀ CUNG CẤP KHÔNG Đ ƯỢC TRÙNG V ỚI ĐỊA CHỈ CỦA NHÂN VIÊN ---------------CREATE TRIGGER TG_DIACHINCCKHONGTRUNGDIACHINV ON NHACUNGCAP FOR INSERT,UPDATE AS BEGIN DECLARE @Diachi NVARCHAR(200) SELECT @Diachi =DIACHI FROM inserted IF(@Diachi IN (SELECT DIACHI FROM NHANVIEN)) BEGIN RAISERROR('Dia chi da ton tai trong quan he NHANVIEN',16,1); ROLLBACK TRAN RETURN END END GO ------------------- TẠO TRIGGER TỰ ĐỘNG CẬP NHẬT GIÁ SẢN PHẨM THEO MỨC GIÁ CỦA SẢN PHẨM ĐÓ ĐƯỢC NHẬP VÀO ---------------- CREATE TRIGGER TG_GIASANPHAMTUCAPNHAT ON CHITIETHOADONNHAP FOR INSERT, UPDATE AS BEGIN DECLARE @gia INT,@masp NCHAR(20) SELECT @gia =GIANHAP,@masp=MASP FROM inserted IF(@gia >= (SELECT DONGIA FROM SANPHAM WHERE MASP=@masp)) BEGIN UPDATE SANPHAM SET DONGIA=@gia*1.5 WHERE MASP=@masp END END Trang 19 QUẢN LÝ SHOP TÌNH YÊU GVHD:TS. NGUYỄN THÀNH SƠN GO ------------------- TẠO TRIGGER TỰ ĐỘNG CẬP NHẬT LẠI SỐ LƯỢNG KHI NHẬP HÀNG ---------------CREATE TRIGGER TG_CAPNHATSPKHINHAP ON CHITIETHOADONNHAP FOR INSERT,UPDATE AS BEGIN DECLARE @masp NCHAR(20),@sl INT SELECT @masp =MASP,@sl=SOLUONG FROM inserted UPDATE SANPHAM SET SOLUONGTON=SOLUONGTON+@sl WHERE MASP=@masp END GO 1.6 PHÂN QUYỀN Tạo role BanHang, ThuKho, QuanLy Gán quyền cho role đó Add các user vào Gán quyền cho user QuanLy có các quyền: Tất cả quyền. ThuKho có các quyền: Trừ quyền Bán hàng, Quản lý nhân viên và Tra cứu hóa đơn. BanHang có các quyền: Không được sử dụng bảng Nhập hàng, Nhà cung cấp, Tra cứu hóa đơn và các công việc Quản lý bộ phận và quản lý nhân viên. use SHOPTINHYEU go --Phan quyen cho role BANHANG --thao tac tren cac bang grant grant grant grant grant grant grant grant grant select on SANPHAM to BanHang select on View_SanPham to BanHang select, insert on HOADONBAN to BanHang select, insert, update, delete on CHITIETHOADONBAN to BanHang select, insert, update, delete on DONVITINH to BanHang select, insert, update, delete on LOAISANPHAM to BanHang select, update on TK to BanHang select on NHANVIEN to BanHang select on BOPHAN to BanHang --Thuc thi cac store procedure grant execute on spThemSP to BanHang grant execute on spSuaSanPham to BanHang grant execute on spXoaSanPham to BanHang grant execute on spThemLoaiSP to BanHang grant execute on spSuaLoaiSP to BanHang grant execute on spXoaLoaiSP to BanHang grant execute on spThemDVT to BanHang grant execute on spSuaDVT to BanHang grant execute on spXoaDVT to BanHang Trang 20
- Xem thêm -

Tài liệu liên quan