Đồ án Quản lý khách sạn

27 1.2K 4
Đồ án Quản lý khách sạn

Đ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

I. Mô tả các chức năng của hệ thống. 1. Phân quyền cho các đối tượng sử dụng - Nhân viên lễ tân : nhập các thông tin của khách hàng khi tiếp đón khách, các thông tin giao dịch với khách hàng, thanh toán cho khách hàng khi họ trả phòng. - Nhân viên phục vụ : nhập các thông tin sử dụng dịch vụ của khách hàng, cập nhật sự thay đổi giá sử dụng dịch vụ. - Nhân viên quản lý phòng : cập nhật trang thiết bị của từng phòng, phân hạng phòng, giá thuê của từng loại phòng, thông tin về thay đổi của phòng thuê. - Nhân viên quản trị hệ thống : cập nhật thêm danh sách nhân viên mới và cấp quyền sử dụng cho những người có nhiệm vụ. - Giám đốc khách sạn : xem các thông tin tổng hợp về công việc kinh doanh của khách sạn. 2. Chức năng của hệ thống - Quản lý danh sách phòng, các tiện nghi trong phòng, số giường và trạng thái của phòng - Quản lý các yêu cầu đặt phòng, thuê phòng của các khách hàng - Quản lý các thông tin về khách hàng, ghi nhận các khách hàng đặc biệt và có chính sách ưu tiên đối với các khách hàng quen. - Theo dõi và thống kê việc sử dụng dịch vụ của khách hàng (điện thoại, ăn uống, giặt là…) - Cho phép in các hóa đơn thanh toán khi khách hàng trả phòng. - Hệ thống có thể in ra các báo cáo thống kê tình hình kinh doanh của khách sạn. II. Thiết kế CSDL 1. Cấu trúc các bảng. a) [QuanLyPhong].[GIAPHONG] Column Name Description Datatype Length Allow Null LoaiPhong Loại phòng Varchar 20 Giá Giá Money  b) [QuanLyPhong].[PHONG] Column Name Description Datatype Length Allow Null 1 SoPhong Số phòng. Khóa chính MA:varchar 10 DienTich Diện tích Int  ViTri Vị trí Varchar 15  SoGiuong Số giường Int  LoaiPhong Loại phòng. Khóa ngoại của GIAPHONG.GiaPhong Varchar 20 TienNghi Tiện nghi Varchar 200  TrangThai Trạng thái Varchar 10 c) [LeTan].[KHACHHANG] Column Name Description Datatype Length Allow Null MaKH Mã khách hàng. Khóa chính MA:varchar 10 HoTen Họ tên TEN:varchar 50 Tuoi Tuổi Int  GioiTinh Giới tính Varchar 3  DiaChi Địa chỉ Varchar 100  NgheNghiep Nghề nghiệp Varchar 100  SDT Số điện thoại Varchar 11  CMND Chứng minh nhân dân Varchar 9 d) [QuanTri].[NHANVIEN] Column Name Description Datatype Length Allow Null 2 MaNV Mã nhân viên. Khóa chính MA:varchar 10 HoTen Họ tên TEN:varchar 50 NgaySinh Ngày sinh Datetime  DiaChi Địa chỉ Varchar 100  NgayLam Ngày làm việc Datetime ChucVu Chức vụ Varchar 20 CapTren Cập trên trực tiếp quản lý. Khóa ngoại của NHANVIEN.MaNV MA:varchar 10  e) [LeTan].[MUONTRAPHONG] Column Name Description Datatype Length Allow Null MaKH Mã khách hàng. Khóa chính. Khóa ngoại của KHACHHANG.MaKH MA:varchar 10 SoPhong Số phòng. Khóa chính. Khóa ngoại của PHONG.SoPhong MA:varchar 10 NgayMuon Ngày mượn phòng Datetime NgayTra Ngày trả phòng Datetime  f) [LeTan].[HOADON] Column Name Description Datatype Length Allow Null MaHD Mã hóa đơn. Khóa chính MA:varchar 10 MaKH Mã khách hàng. Khóa ngoại của KHACHHANG.MaKH MA:varchar 10 NgayHD Ngày hóa đơn Datetime  g) [LeTan].[CTHD] Column Name Description Datatype Length Allow Null 3 MaHD Mã hóa đơn. Khóa chính. Khóa ngoại của HOADON.MaHD MA:varchar 10 SoPhong Số phòng. Khóa chính. Khóa ngoại của PHONG.SoPhong MA:varchar 10 ThoiGian(ngay) Thời gian ở Int Gia Giá Money  DichVu Tiền sử dụng dịch vụ Money  ThanhTien Thành tiền Money  h) [PhucVu].[DICHVU] Column Name Description Datatype Length Allow Null MaDV Mã dich vụ. Khóa chính MA:varchar 10 TenDV Tên dịch vụ Varchar 40 GiaDV Giá dịch vụ Varchar 20  DonViTinh Đơn vị tính Varchar 5  i) [LeTan].[DATPHONG] Column Name Description Datatype Length Allow Null HoTen Họ tên TEN:varchar 50 Tuoi Tuổi Int  GioiTinh Giới tính Varchar 3  DiaChi Địa chỉ Varchar 100  NgheNghiep Nghề nghiệp Varchar 100  SDT Số điện thoại Varchar 11  CMND Chứng minh nhân dân Varchar 9 Phong Phòng cần đặt. Khóa ngoại của PHONG.SoPhong TEN:varchar 50 NgayDat Ngày đặt phòng Datetime NgayMuon Ngày mượn phòng Datetime j) [PhucVu].[SUDUNGDV] 4 Column Name Description Datatype Length Allow Null MaKH Mã khách hàng. Khóa chính. Khóa ngoại của KHACHHANG.MaKH MA:varchar 10 MaDV Mã dịch vụ. Khóa chính. Khóa ngoại của DICHVU.MaDV MA:varchar 10 SL(theo dvtinh) Giá dịch vụ Int  ThanhTien Tiền sử dụng dịch vụ Money  2. Sơ đồ quan hệ giữa các bảng. III. Mô tả các thủ tục, hàm và trigger. 1. Các thủ tục a) Thủ tục nhập CTHD - Tên : LeTan.proc_NhapCTHD - Kết quả thực hiện : Nhập thông tin vào bảng [LeTan].[CTHD] - Các bước thực hiện : + Nhập MaDH, SoPhong, ThoiGian, Gia. + Tính TinhTien = ThoiGian * Gia. + Chèn dữ liệu vào bảng [LeTan].[CTHD] b) Thủ tục nhập MUONTRAPHONG 5 - Tên : LeTan.proc_MUON - Kết quả thực hiện : Nhập thông tin vào bảng [LeTan].[MUONTRAPHONG] - Các bước thực hiện : + Nhập MaKH, SoPhong. + Lấy NgayMuon = ngày hệ thống. + Chèn dữ liệu vào bảng [LeTan].[MUONTRAPHONG] c) Thủ tục trả phòng - Tên : LeTan.proc_TRA - Kết quả thực hiện : + Cập nhật NgayTra của bảng [LeTan].[MUONTRAPHONG] - Các bước thực hiện : + Nhập SoPhong cần trả. + Kiểm tra NgayTra của phòng khác null hay không? Nếu có: + Cập nhật NgayTra trong bảng [LeTan].[MUONTRAPHONG] bằng ngày hệ thống. Ngược lại + Thông báo phòng đã được trả. d) Thủ tục nhập bảng SUDUNGDV - Tên : PhucVu.proc_DV - Kết quả thực hiện : Nhập thông tin vào bảng [PhucVu].[SUDUNGDV] - Các bước thực hiện : + Nhập vao MaKH, MaDV, SL + Kiểm tra khách hàng có trong bảng KHACHHANG hay không Nếu có : + Lấy giá của dịch vụ từ bảng DICHVU + Tính tiền = Gia*SL + Chèn dữ liệu vào bảng [PhucVu].[SUDUNGDV]. Ngược lại : Thông báo khách hàng không tồn tại. e) Thủ tục in hóa đơn thanh toán - Tên : LeTan.proc_INHD - Kết quả thực hiện : In hóa đơn cho khách hàng - Các bước thực hiện : + Nhập MaKH 6 + Kiểm tra khách hàng đã được lập hóa đơn chưa Nếu có : + Lấy tên khách hàng từ bảng KHACHHANG + Tính tổng tiền thuê phòng của khách hàng từ bảng HOADON và CTHD. +Tính tiền sử dụng dịch vụ của khách hàng đó + Tính tổng tiền phải trả = tiền thuê phòng + tiền sử dụng dịch vụ Ngược lại : thông báo khách hàng không tồn tại 2. Các hàm Hàm tìm kiếm, thống kê trên dữ liệu có quan hệ đa cấp - Tên : fn_TimKiem - Kết quả thực hiện : Tìm kiếm tất cả nhân viên cấp dưới của một nhân viên nào đó. - Các bước thực hiện : + Nhập mã nhân viên cần tìm kiếm + Tạo một bảng tạm có cấu trúc giống với bảng gốc ([QuanTri].[NHANVIEN]) + Chèn thông tin các nhân viên có cấp trên là mã nhân viên nhập vào + Tìm kiếm các nhân viên có cấp trên là mã nhân viên vừa chèn vào + SELECT bảng tạm 3. Các trigger a) Trigger cấm không cho tạo LOGIN - Tên : tg_TaoLogin - Kết quả thực hiện : không cho người dung tạo mới login. - Các bước thực hiện : + Khi có 1 người dùng tạo mới 1 login thì hệ thống sẽ lưu lại user_name tạo login đó và ngày tạo. + Thông báo không thể tạo login. b) Trigger khi chèn dữ liệu vào bảng [LeTan].[DATPHONG] - Tên : tg_DATPHONG - Kết quả thực hiện : + Nhập thông tin vào bảng [LeTan].[DATPHONG] + Cập nhật TrangThai của phòng trong bảng [QuanLyPhong].[PHONG] - Các bước thực hiện : 7 + Lấy các giá trị HoTen,Tuoi, GioiTinh, DiaChi, NgheNghiep, SDT, CMND, SoPhong từ dữ liệu nhập vào. + Kiểm tra TrangThai của phòng ứng với giá trị SoPhong nhập vào trong bảng [QuanLyPhong].[PHONG] có còn trống không. Nếu có : + Chèn dữ liệu vào bảng [LeTan].[DATPHONG] + Cập nhật TrangThai của phòng trong bảng [QuanLyPhong]. [PHONG] là ‘Da Dat’ Ngược lại : + Thông báo phòng đã có người ở. c) Trigger khi chèn dữ liệu vào bảng [LeTan].[MUONTRAPHONG] - Tên : tg_MUON - Kết quả thực hiện : + Nhập thông tin vào bảng [LeTan].[MUONTRAPHONG] + Cập nhật TrangThai của phòng trong bảng [QuanLyPhong].[PHONG] + Xóa dữ liệu trong bảng [LeTan].[DATPHONG] - Các bước thực hiện : + Lấy các giá trị MaKH, SoPhong, NgayMuon từ dữ liệu nhập vào. + Nếu phòng còn trống thì : Chèn dữ liệu vào bảng [LeTan].[MUONTRAPHONG] Cập nhật trạng thái của phòng = full + Nếu khách hàng đã đặt phòng trước thì : Chèn dữ liệu vào bảng [LeTan].[MUONTRAPHONG] Cập nhật trạng thái của phòng = full Xóa dữ liệu trong bảng [LeTan].[DATPHONG] d) Trigger khi thực hiện trả phòng. - Tên : tg_TRA - Kết quả thực hiện : + Cập nhật NgayTra trong bảng [LeTan].[MUONTRAPHONG] + Cập nhật lại TrangThai cua phong = Trong. + Chèn dữ liệu vào bảng [LeTan].[HOADON], [LeTan].[CTHD] - Các bước thực hiện : 8 + Nếu NgayTra có sự thay đổi từ NULL sang NOT NULL : Cập nhật NgayTra bảng [LeTan].[MUONTRAPHONG] = ngày hệ thống Cập nhật lại TrangThai cua phong = Trong. Chèn dữ liệu vào bảng [LeTan].[HOADON], [LeTan].[CTHD] + Ngược lại : Cập nhật lại thông tin trong bảng LeTan].[MUONTRAPHONG] e) Trigger nhập bảng [QuanTri].[NHANVIEN] - Tên : tg_NV - Kết quả thực hiện : Kiểm tra nhân viên đã đến tuổi lao động chưa. - Các bước thực hiện : + Lấy các giá trị NgaySinh, NgayLam từ dữ liệu nhập vào + Tính tuổi của nhân viên đến thời điểm làm việc. Nếu tuổi < 18 thì thông báo người này chưa đủ tuổi làm việc. IV. Mô tả các View 1. VIEW tìm phòng trống - Tên : QuanLyPhong.v_TimPhongTrong - Kết quả thực hiện : Hiển thị danh sách các phòng còn trống. 2. VIEW thống kê hóa đơn. - Tên : LeTan.v_ThongKe - Kết quả thực hiện : Hiển thị tổng hóa đơn được lập và tổng doanh thu của khách sạn. V. Quản trị CSDL 1. Tạo các login STT Tên Login Quyền 1 loginQuanTri ANY PERMISSION 2 loginLeTan CONNECT SQL, VIEW ANY DATABASE 3 loginPhucVu CONNECT SQL, VIEW ANY DATABASE 4 loginQuanLyPhong CONNECT SQL, VIEW ANY DATABASE 5 loginKhachHang CONNECT SQL, VIEW ANY DATABASE 6 loginGD CONNECT SQL, VIEW ANY DATABASE 2. Tạo các user 9 STT Tên user Quyền 1 userQuanTri - Cập nhật bảng [QuanTri].[NHANVIEN] - Cấp quyền cho người sử dụng 2 userLeTan - Có mọi quyền trong các bảng thuộc schema LeTan (DATPHONG,MUONTRAPHONG,HOADON,CTHD) - Có quyền SELECT đối với các bảng khác (DICHVU, GIAPHONG, PHONG, NHANVIEN) 3 userPhucVu - Có mọi quyền trong các bảng thuộc schema PhucVu (DICHVU) - Có quyền SELECT đối với các bảng khác (DATPHONG,MUONTRAPHONG,HOADON,CTHD, GIAPHONG, PHONG, NHANVIEN) 4 userQuanLyPhong - Có mọi quyền trong các bảng thuộc schema QuanLyPhong (GIAPHONG, PHONG) - Có quyền SELECT đối với các bảng khác (DATPHONG,MUONTRAPHONG,HOADON,CTHD, DICHVU, NHANVIEN) 5 userKhachHang - Có quyền cập nhật bảng [LeTan].[DATPHONG] - Có quyền SELECT đối với các bảng khác (GIAPHONG, PHONG, DICHVU) 6 userGD Có quyền SELECT tất cả các bảng 3. Tạo các role STT Tên db_role Quyền 1 db_QuanTri - Cập nhật bảng [QuanTri].[NHANVIEN] - Cấp quyền cho người sử dụng 2 db_NV - Có quyền SELECT trên các schema QuanTri, LeTan, PhucVu, QuanLyPhong 3 db_KH - Có quyền cập nhật bảng [LeTan].[DATPHONG] - Có quyền SELECT đối với các bảng khác (GIAPHONG, PHONG, DICHVU) 4. Cấp phát quyền cho role và user sử dụng giao diện MS SQL Management Studio a) Cấp phát quyền cho role 10 [...]... proc_TRA '0910' Nhân viên lễ tân nhập và in hóa đơn thanh toán cho khách hàng khi khách hàng trả phòng insert letan.hoadon values('KH4','06/24/2012') exec proc_NhapCTHD 1,'0910',12,100 exec proc_INHD 'KH1' Đăng nhập với userPhucVu revert execute as user='userPhucVu' Nhân viên phục vu cập nhật thông tin về các dịch vụ và việc sử dụng các dịch vụ của khách hàng insert into phucvu.dichvu values('DT','Dien... luận Mặc dù đã có những cố gắng, cùng với sự hướng dẫn tận tình của thầy Nguyễn Mạnh Hùng, song vì thời gian còn hạn chế, bước đầu chúng em được làm quen với bài toán quản lý mà kinh nghiệm còn chưa nhiều nên chương trình của chúng em không tránh khỏi những thiếu sót Chúng em rất mong nhận được sự chỉ dẫn của thầy cô giáo cùng với sự góp ý của các bạn để chương trình của chúng em hoàn thiện hơn 27 ... Nhân viên lễ tân nhập các thông tin về khách hàng khi khách hàng có nhu cầu thuê phòng 25 insert letan.khachhang values('KH4','Nguyen Van D',22,'Nam','Ha Noi','CN','0974732269','198234870') update letan.khachhang set HoTen= 'Tran Trung B' where MaKH = 'KH4' delete from letan.khachhang where MaKH='KH4' Nhân viên lễ tân tiếp nhận yêu cầu thuê phòng và trả phòng của khách hàng exec proc_MUON 'KH4','0912'... phucvu.dichvu set GiaDV=1800 where MaDV='DT' delete from phucvu.dichvu where MaDV = 'DT' exec proc_DV 'KH1','DT',5 Đăng nhập với userQuanLyPhong revert execute as user='userQuanLyPhong' Nhân viên quản lý phòng cập nhật thông tin về phòng và giá phòng insert into quanlyphong.phong values('0910',30,'N5',2,'Loai 1','Dieu hoa, Tivi, Tu lanh',default) update quanlyphong.phong set LoaiPhong='Loai 2' where... from quanlyphong.giaphong where LoaiPhong = 'Loai 1' select * from QuanLyPhong.v_timphongtrong Đăng nhập với userGD revert execute as user='userGD' Giám đốc được quyền xem tất cả các hoạt động của khách sạn select * from quantri.nhanvien select * from letan.khachhang select * from letan.datphong select * from letan.muontraphong select * from letan.hoadon 26 select select select select select select... quanlyphong.v_TimPhongTrong Đăng nhập với userKhachHang revert execute as user='userKhachHang' Khách hàng được quyền xem các thông tin về phòng và dịch vụ select * from quanlyphong.v_timphongtrong select * from letan.muontraphong select * from phucvu.dichvu select * from quanlyphong.giaphong select * from quanlyphong.phong Khách hàng được phép dặt phòng insert into [LeTan].[DATPHONG] values('AAA',22,'Nu','Ha... với userQuanTri execute as user='userQuanTri' Nhân viên quản trị cập nhật thêm danh sách nhân viên mới insert quantri.nhanvien values('NV4','Nguyen Van C','01/23/1990','Ha Noi','06/12/2012','Nhan vien phuc vu','NV2') update quantri.nhanvien set HoTen= 'Tran Trung B' where MaNV = 'NV4' delete from quantri.nhanvien where MaNV='NV4' Nhân viên quản tri cấp quyền cho người sử dụng grant select on phucvu.DICHVU... from phucvu.dichvu where MaDV = @madv set @tien = @gia * @sl insert into phucvu.sudungdv values(@makh,@madv,@sl,@tien) END else BEGIN print'KHACH HANG K TON TAI!!!!!!!' END e) Thủ tục in hóa đơn thanh toán CREATE PROC LeTan.proc_INHD (@makh MA) WITH EXECUTE AS CALLER AS if exists(select * from letan.hoadon where MaKH = @makh) BEGIN print ' HOA DON THANH TOAN' 20 print ' ==================' declare @ten

Ngày đăng: 23/10/2014, 22:50

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan