Bắt kịp xu thế công nghệ thông tin đang tăng cao, cùng với sự bùng nổ về công nghệ 4.0 đã thay đổi hành vi của khách hàng dần dịch chuyển sang các trang đặt phòng trực tuyến tại nhà.. Tr
Trang 1BÀI TẬP LỚN HỌC PHẦN
Họ và tên sinh viên:
Lớp:
Ngành đào tạo: Công nghệ thông tin
Hệ đào tạo: Đại học
Tên chủ đề báo cáo: CHỦ ĐỀ 2: Thiết kế cơ sở dữ liệu cho hệ thống Quản lý
thuê phòng khách sạn
Trang 2LỜI MỞ ĐẦU
Trong hoạt động môi giới kinh doanh Giờ đây, đặt phòng trực tuyến đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp Đối với một khách sạn hay homestay, việc quảng bá và giới thiệu phòng đến khách hàng các dịch vụ mới sẽ đáp ứng được nhu cầu của khách hàng Bắt kịp
xu thế công nghệ thông tin đang tăng cao, cùng với sự bùng nổ về công nghệ 4.0
đã thay đổi hành vi của khách hàng dần dịch chuyển sang các trang đặt phòng trực tuyến tại nhà Vì vậy, một trang đặt phòng điện tử cho khách sạn hoặc homestay là điều mà các người chủ nào cũng muốn sở hữu
Đó là lý do em đã thực hiện đồ án “ Thiết kế cơ sở dữ liệu cho hệ thống Quản lý thuê phòng khách sạn” Trên trang đặt phòng trực tuyến này, quản trị viên có thể đưa lên các phòng và quản lý, theo dõi các đơn đặt phòng, lợi nhuận, phản hồi của khách hàng Đồng thời, khách hàng cũng có thể trở thành thành viên của khách sạn, có thể tự do đặt phòng, theo dõi đơn đặt phòng và tham khảo các phòng cũng như dịch vụ của khách sạn mà không cần phải đến trực tiếp Ngoài ra, trang web còn mang lại cho người dùng một trải nghiệm đặt phòng mới mẻ, hiện đại nhờ vào thiết kế hiện đại cùng với sự tối giản của website
Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và góp ý của các quý thầy, cô
Em xin chân thành cảm ơn,
Trang 3MỤC LỤC
LỜI MỞ ĐẦU i
MỤC LỤC ii
DANH MỤC BẢNG BIỂU iii
DANH MỤC HÌNH ẢNH iv
CHƯƠNG 1: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 9
1.1 PHÂN TÍCH BÀI TOÁN 9
1.1.1 Phát biểu bài toán 9
1.1.2 Yêu cầu của bài toán 9
1.2 PHÂN TÍCH THIẾT 10
1.2.1 Tác nhân và vai trò 10
1.3 Mô hình thực thể liên kết 15
CHƯƠNG 2: PHÂN TÍCH LUÔNG DỮ LIỆU QUAN HỆ 17
2.1 Biểu đồ tuần tự (Sequence Diagram) 17
2.1.1.Biểu đồ tuần tự thêm phòng vào đơn đặt phòng 17
2.1.2 Biểu đồ tuần tự xem đơn đặt phòng 18
2.1.3 Biểu đồ tuần tự cập nhật đơn đặt phòng 19
2.1.4 Biểu đồ tuần tự thanh toán 19
2.2 Biểu đồ lớp ràng buộc dữ liệu (Class Diagram) 20
2.3 Mô hình cơ sở dữ liệu quan hệ (Database Diagram) 24
2.4 Các bảng cơ sở dữ liệu 25
2.4.1 Bảng quản trị viên (admins) 25
2.4 2 Bảng nhật ký công việc (audits) 25
2.4.3 Bảng đơn đặt phòng (bookings) 26
Trang 42.4.4 Bảng chi tiết đơn đặt phòng (booking_detail) 27
2.4.5 Bảng quan hệ nhiều - nhiều giữa đơn đặt phòng và dịch vụ phát sinh (cost_booking) 28
2.4.6 Bảng dịch vụ phát sinh (cost_overrun) 28
2.4.7 Bảng phản hồi (feedbacks) 29
2.4.8 Bảng tin tức (news) 30
2.4.9 Bảng quyền (permissions) 30
2.4.10 Bảng quan hệ nhiều - nhiều giữa quyền và nhóm quyền (role_has_permissions) 31
2.4.11 Bảng Giá ngày đặc biệt (ngày lễ) (price_manager) 31
2.4.12 Bảng nhóm quyền (roles) 32
2.4.13 Bảng quan hệ nhiều – nhiều giữa tài khoản với nhóm quyền (model_has_roles) 32
2.4.14 Bảng phòng (rooms) 32
2.4.15 Bảng ảnh phòng (room_images) 33
2.4.16 Bảng quan hệ nhiều – nhiều giữa phòng và dịch vụ (room_service) 34
2.4.17 Bảng thể loại (room_types) 34
2.4.18 Bảng dịch vụ (services) 35
2.4.19 Bảng nhãn (tags) 36
2.4.20 Bảng tài khoản khách hàng (users) 36
2.4.21 Bảng (vote_booking) 37
2.4.22 Bảng quan hệ nhiều - nhiều giữa nhãn và phòng (room_tag) 38
2.4.23 Bảng đăng ký nhận quảng cáo (member) 38
Trang 52.4.24 Bảng quan hệ nhiều – nhiều giữa đơn đặt phòng và giá ngày đặc biệt
(specialday_booking) 39
2.4.25 Bảng thông báo (notifications) 39
2.5 CẤU HÌNH HỆ THỐNG DỮ LIỆU 40
2.5.1 Môi trường phát triển 40
2.5.2 Khởi chạy ứng dụng dữ liệu 40
2.6 Khai thác dữ liệu 41
CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 42
3.1 KẾT LUẬN 42
3.1.1 Những kết quả đạt được 42
3.1.2 Chưa đạt được 42
3.2 HƯỚNG PHÁT TRIỂN 42
HỌC LIỆU THAM KHẢO 44
Trang 6DANH MỤC BẢNG BIỂU
BẢNG 2.1 Xác định các tác nhân 10
BẢNG 2.2 Xác định các Use-case 14
BẢNG 2.2 Quản trị viên 25
BẢNG 2.3 Nhật ký công việc 26
BẢNG 2.4 Đơn đặt phòng 27
BẢNG 2.5 Chi tiết đơn đặt phòng 28
BẢNG 2.6 Quan hệ nhiều – nhiều giữi đơn đặt phòng và dịch vụ 28
BẢNG 2.7 Dịch vụ phát sinh 29
BẢNG 2.8 Phản hồi 30
BẢNG 2.9 Tin tức 30
BẢNG 2.10 Quyền 31
BẢNG 2.11 Quan hệ nhiều nhiều giữi quyền và nhóm quyền 31
BẢNG 2.12 Giá ngày đặc biệt 32
BẢNG 2.13 Nhóm quyền 32
BẢNG 2.14 Quan hệ nhiều nhiều giữi tài khoản với nhóm quyền 32
BẢNG 2.15 Phòng 33
BẢNG 2.16 Ảnh phòng 34
BẢNG 2.17 Quan hệ nhiều nhiều giữi phòng và dịch vụ phòng 34
BẢNG 2.18 Loại phòng 35
BẢNG 2.19 Dịch vụ 36
BẢNG 2.20 Nhãn 36
BẢNG 2.21 Tài khoản khách hàng 37
BẢNG 2.22 Đánh giá đơn đặt phòng 38
Trang 7BẢNG 2.23 Quan hệ nhiều nhiều giữa nhãn và phòng 38
BẢNG 2.24 Đăng ký nhận thông tin khách sạn 39
BẢNG 2.25 Quan hệ nhiều nhiều giữi đơn đặt phòng và giá ngày đặc biệt 39
BẢNG 2.26 Thông báo 40
Trang 8DANH MỤC HÌNH ẢNH
HÌNH 1.1 Biểu đồ Use-case tổng quát khách hàng 15
HÌNH 1.2 Biểu đồ Use-case quản trị viên 16
HÌNH 2.3 Biểu đồ tuần tự thêm phòng và đơn đặt phòng 17
HÌNH 2.4 Biểu đồ tuần tự xem đơn đặt phòng 18
HÌNH 2.5 Biểu đồ tuần tự cập nhật đơn đặt phòng 19
HÌNH 2.6 Biểu đồ tuần tự thanh toán 20
HÌNH 2.7 Biểu đồ lớp 20
HÌNH 2.8 Biểu đồ lớp 21
HÌNH 2.9 Biểu đồ lớp 22
HÌNH 2.10 Biểu đồ lớp 23
HÌNH 2.11 Biểu đồ cơ sở dữ liệu 24
Hình 2.1 Phân quyền User 41
Hình 2.2 Tạo dữ liệu phòng cho thuê 41
Trang 9CHƯƠNG 1: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1.1 PHÂN TÍCH BÀI TOÁN
1.1.1 Phát biểu bài toán
Website Booking Hotel là một website đặt phòng trực tuyến cung cấp cho doanh nghiệp và cá nhân nền tảng kinh doanh phù hợp với xu hướng của ngành công nghiệp 4.0 Ngoài ra, website còn cung cấp và phục vụ khách hàng các chức năng đặt phòng tiện lợi, hiện đại cùng với trải nghiệm đặt phòng tốt nhất
1.1.2 Yêu cầu của bài toán
Website cần đáp ứng những chức năng sau:
Giao diện hiện đại, thân thiện, đơn giản, không lòe loẹt, dễ nhìn, sáng sủa
Bảo mật thông tin người dùng, có quy định về chính sách riêng tư
Hỗ trợ người dùng đăng ký, đăng nhập, quên mật khẩu ( truyền thống hoặc đăng nhập thông qua tài khoản Gmail - Google )
Xác nhận email sau khi đăng ký tài khoản nhằm tránh các tài khoản ảo
Phòng được sắp xếp hiển thị hợp lý theo danh mục, bố cục rõ ràng
Người dùng có thể xem, tìm kiếm, đặt phòng, theo dõi trạng thái đơn đặt phòng, hủy đơn khi đơn chưa được xác nhận hoặc đơn chưa vượt quá số ngày quy định
Người dùng có thể đánh giá đơn đặt phòng khi trả phòng
Người dùng có thể quản lý thông tin cá nhân, đổi mật khẩu
Người dùng sẽ nhận hóa đơn điện tử qua email sau khi đặt phòng, thanh toán, phản hồi
Người dùng có thể tùy chỉnh ngôn ngữ (VI, EN)
Người dùng có thể phản hồi ý kiến của mình cho trang quản trị
Trang 10 Người dùng có thể nhận thông báo (tin tức mới, Chương trình khuyến mãi mới) qua email
Người dùng có thế lựa chọn hình thức thanh toán ( tại khách sạn, VNPay)
Trang quản trị bao gồm đầy đủ các chức năng quản lý từng thành phần
Trang quản trị hiển thị đầy đủ các số liệu thống kê
Trang quản trị hỗ trợ checkin, checkout thông qua QR Code
Theo dõi cập nhật nhật ký làm việc của quản trị viên
Trang quản trị hỗ trợ tạo, phân quyền theo chức năng cho quản trị viên
Trang quản trị phản hồi lại góp ý của khách hàng thông qua email
1.2 PHÂN TÍCH THIẾT KẾ
1.2.1 Tác nhân và vai trò
1.2.1.1 Xác định các tác nhân
1 Khách hàng (User) Người có nhu cầu đặt phòng tương tác trực tiếp với
Trang 11lợi của khách hàng, đăng nhập
để sử dụng đầy đủ các chức năng của trang web và sau đó đăng xuất khỏi tài khoản để bảo mật tài khoản
Đăng nhập bằng tài khoản Google
Thực hiện đăng nhập với tài khoản Google của khách hàng
khẩu
Xem thông tin phòng Giới thiệu và trưng bày các
thông tin liên quan về phòng Xem phòng theo thể
Thêm phòng vào đơn đặt phòng
Giúp khách hàng thêm phòng đã chọn vào đơn đặt phòng
phòng đã chọn
thanh toán đơn đặt phòng thông
Trang 12qua VNPay
Phản hồi
Tiếp nhận phản hồi của khách hàng và trả lời lại cho khách hành thông qua email
Đánh giá đơn đặt phòng
Sau khi trả phòng, thì cho khách hành đánh giá chất lượng dịch
vụ của khách sạn
Theo dõi đơn đặt phòng
Giúp khách hàng cập nhập thông tin chi tiết về đơn hàng đã đặt
Sắp xếp phòng
Hỗ trợ khách hàng dễ dàng lựa chọn phòng theo loại phòng, giá,
Quản lý đơn đặt phòng
Giúp khách hàng cập nhập bổ sung thông tin đơn đặt phòng,
hỗ trợ cho việc thanh toán
Trang 13Quản lý thông tin cá nhân
Giúp khách hàng xem thông tin
cá nhân, cập nhập bổ sung thông tin cá nhân, hỗ trợ cho việc thanh toán
Đăng nhập, đăng xuất
Đăng nhập để sử dụng đầy đủ các chức năng của trang website
và sau đó đăng xuất khỏi tài khoản để bảo mật tài khoản Quản lý loại phòng Giúp tạo, sửa, xóa loại phòng
Quản lý dịch vụ phòng Giúp tạo, sửa, xóa dịch vụ Quản lý giá ngày đặc
Quản lý dịch vụ phát sinh
Giúp tạo, sửa, xóa dịch vụ phát sinh
Quản lý bài viết Giúp tạo, sửa, xóa bài viết
dữ liệu ra file exce
Quản lý checkin, checkout
Giúp tìm kiếm thông tin đơn đặt phòng thông qua mã QR Code,
Trang 14cập nhật trạng thái đơn đặt phòng
Quản lý nhật ký công việc
Giúp hiển thị nhật ký công việc trên hệ thống
Quản lý quản trị viên Giúp tạo, sửa, xóa, phân quyền
quản trị viên
Quản lý đơn đặt phòng
Giúp hiển thị, cập nhập trạng thái đơn hàng, xóa đơn đặt phòng, xuất dữ liệu đơn đặt phòng ra file exce
ngôn ngữ khác nhau
kê của trang web
(phòng mới, tin tức, event…)
Hiển thị thông báo Hiển thị thông báo khi có khách
hàng đặt phòng, góp ý…
Gửi email xác nhận đăng ký
Gửi email xác nhận đăng ký tài khoản, tránh các email ảo
BẢNG 2.2 Xác định các Use-case
Trang 151.3 Mô hình thực thể liên kết
1.3.1 Biểu đồ Use-case tổng quát khách hàng
HÌNH 1.1 Biểu đồ Use-case tổng quát khách hàng
Trang 161.3.2 Biểu đồ Use-case quản trị viên
HÌNH 1.2 Biểu đồ Use-case quản trị viên
Trang 17CHƯƠNG 2: PHÂN TÍCH LUÔNG DỮ LIỆU QUAN HỆ
2.1 Biểu đồ tuần tự (Sequence Diagram)
2.1.1.Biểu đồ tuần tự thêm phòng vào đơn đặt phòng
HÌNH 2.3 Biểu đồ tuần tự thêm phòng và đơn đặt phòng
Trang 182.1.2 Biểu đồ tuần tự xem đơn đặt phòng
HÌNH 2.4 Biểu đồ tuần tự xem đơn đặt phòng
Trang 192.1.3 Biểu đồ tuần tự cập nhật đơn đặt phòng
HÌNH 2.5 Biểu đồ tuần tự cập nhật đơn đặt phòng
2.1.4 Biểu đồ tuần tự thanh toán
Trang 20HÌNH 2.6 Biểu đồ tuần tự thanh toán
2.2 Biểu đồ lớp ràng buộc dữ liệu (Class Diagram)
HÌNH 2.7 Biểu đồ lớp
Trang 21HÌNH 2.8 Biểu đồ lớp
Trang 22HÌNH 2.9 Biểu đồ lớp
Trang 23HÌNH 2.10 Biểu đồ lớp
Trang 242.3 Mô hình cơ sở dữ liệu quan hệ (Database Diagram)
HÌNH 2.11 Biểu đồ cơ sở dữ liệu
Trang 252.4 Các bảng cơ sở dữ liệu
2.4.1 Bảng quản trị viên (admins)
viên
xóa
BẢNG 2.2 Quản trị viên
2.4 2 Bảng nhật ký công việc (audits)
Trang 26auditable_id bigint(20) Id bị thay đổi
bị
BẢNG 2.3 Nhật ký công việc
2.4.3 Bảng đơn đặt phòng (bookings)
Trang 27total_amount double Tổng tiền đơn đặt phòng
phòng
phòng
phòng(khóa ngoại)
xóa
BẢNG 2.4 Đơn đặt phòng
2.4.4 Bảng chi tiết đơn đặt phòng (booking_detail)
ngoại)
Trang 28price double Giá phòng
BẢNG 2.5 Chi tiết đơn đặt phòng
2.4.5 Bảng quan hệ nhiều - nhiều giữa đơn đặt phòng và dịch vụ phát sinh
(cost_booking)
ngoại)
ngoại)
BẢNG 2.6 Quan hệ nhiều – nhiều giữi đơn đặt phòng và dịch vụ
2.4.6 Bảng dịch vụ phát sinh (cost_overrun)
Trang 29price double Giá tiền của dịch vụ phát
sinh
xóa
BẢNG 2.7 Dịch vụ phát sinh
2.4.7 Bảng phản hồi (feedbacks)
xóa
Trang 30updated_at timestamp Thời gian cập nhật
BẢNG 2.8 Phản hồi
2.4.8 Bảng tin tức (news)
bài viết bình thường
xóa
BẢNG 2.9 Tin tức
2.4.9 Bảng quyền (permissions)
Trang 31name varchar(191) Tên quyền
BẢNG 2.10 Quyền
2.4.10 Bảng quan hệ nhiều - nhiều giữa quyền và nhóm quyền
(role_has_permissions)
BẢNG 2.11 Quan hệ nhiều nhiều giữi quyền và nhóm quyền
2.4.11 Bảng Giá ngày đặc biệt (ngày lễ) (price_manager)
xóa
Trang 32created_at timestamp Thời gian tạo
BẢNG 2.12 Giá ngày đặc biệt
2.4.12 Bảng nhóm quyền (roles)
BẢNG 2.13 Nhóm quyền
2.4.13 Bảng quan hệ nhiều – nhiều giữa tài khoản với nhóm quyền
(model_has_roles)
BẢNG 2.14 Quan hệ nhiều nhiều giữi tài khoản với nhóm quyền
2.4.14 Bảng phòng (rooms)
Trang 33name varchar(255) Tên phòng
xóa
BẢNG 2.15 Phòng
2.4.15 Bảng ảnh phòng (room_images)
Trang 34id int(10) unsigned Mã id (khóa chính)
BẢNG 2.16 Ảnh phòng
2.4.16 Bảng quan hệ nhiều – nhiều giữa phòng và dịch vụ (room_service)
BẢNG 2.17 Quan hệ nhiều nhiều giữi phòng và dịch vụ phòng
2.4.17 Bảng thể loại (room_types)
Trang 35star int(11) Số sao
xóa
BẢNG 2.18 Loại phòng
2.4.18 Bảng dịch vụ (services)
xóa
Trang 36BẢNG 2.19 Dịch vụ
2.4.19 Bảng nhãn (tags)
xóa
BẢNG 2.20 Nhãn
2.4.20 Bảng tài khoản khách hàng (users)
Trang 37email varchar(255) Gmail
xóa
BẢNG 2.21 Tài khoản khách hàng
2.4.21 Bảng (vote_booking)
Trang 38title varchar(255) Tiêu đề
ngoại)
BẢNG 2.22 Đánh giá đơn đặt phòng
2.4.22 Bảng quan hệ nhiều - nhiều giữa nhãn và phòng (room_tag)
BẢNG 2.23 Quan hệ nhiều nhiều giữa nhãn và phòng
2.4.23 Bảng đăng ký nhận quảng cáo (member)
Trang 39updated_at timestamp Thời gian cập nhật
BẢNG 2.24 Đăng ký nhận thông tin khách sạn
2.4.24 Bảng quan hệ nhiều – nhiều giữa đơn đặt phòng và giá ngày đặc biệt
(specialday_booking)
BẢNG 2.25 Quan hệ nhiều nhiều giữi đơn đặt phòng và giá ngày đặc biệt
2.4.25 Bảng thông báo (notifications)
thay đổi
Trang 40data text Dữ liệu truyền lên
2.5.2 Khởi chạy ứng dụng dữ liệu
Để khởi chạy ứng dụng, cần thực thi những công việc sau:
Cài đặt xampp
import file database trong thư mục public vào MySql server
Trang 412.6 Khai thác dữ liệu
Hình 2.1 Phân quyền User
Hình 2.2 Tạo dữ liệu phòng cho thuê
Trang 42CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Thêm, cập nhật, sửa đơn đặt phòng
Cập nhật thông tin cá nhân
Theo dõi và hủy đơn đặt phòng
Quản trị viên quản lý được tất cả dữ liệu của hệ thống
Quản trị viên xem được biểu đồ thống kê
Theo dõi được nhật ký làm việc của mỗi quản trị viên
3.1.2 Chưa đạt được
Website còn thiếu một vài chức năng như: sửa ảnh đại diện,…
Giao diện còn đơn sơ
Check in , check out thông qua QR Code
3.2 HƯỚNG PHÁT TRIỂN
Sau một thời gian lập trình và học hỏi liên tục từ Backend đến Frontend, Website đã có những chức năng cơ bản của một website đặt phòng online Giao diện được lấy cảm hứng từ Material design của Google, mang đến sự tươi mới,
dễ nhìn, hiện đại cho trang web Ngoài ra, giao diện của Website còn được lập trình để hiển thị phù hợp trên các kích thước hiển thị khác nhau Code được tổ chức đảm bảo Coding convention và Clean code, Repository theo chuẩn doanh nghiệp và các công ty lớn