1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo Cáo Đồ Án Cơ Sở Dữ Liệu 2 Đề Tài Quản Lý Đặt Tiệc Cưới Của Nhà Hàng.pdf

27 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Quản lý đặt tiệc cưới của nhà hàng
Tác giả Lê Tuấn Thành Thật, Phạm Thị Hoàn Mỹ
Người hướng dẫn Ths. Trần Đình Anh Huy
Trường học ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
Chuyên ngành Cơ sở dữ liệu 2
Thể loại Báo cáo đồ án
Năm xuất bản 2024
Thành phố TPHCM
Định dạng
Số trang 27
Dung lượng 1,94 MB

Nội dung

Tại đây, nhân viên quản lý ghi chép các thông tin từ khách hàng bao gồm tên, địa chỉ, số điện thoại, tên chú rể, tên cô dâu, ngày tổ chức, ca tổ chức, số lượng bàn.. Kết thúc tiệc, nhân

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC XÃ HỘI VÀ NHÂN VĂN

KHOA: THƯ VIỆN – THÔNG TIN HỌC

******************

BÁO CÁO ĐỒ ÁN

Môn học: Cơ sở dữ liệu 2

Đề tài: Quản lý đặt tiệc cưới của nhà hàng

Trang 2

MỤC LỤC

I Tổng quan đề tài 5

1 Sự cần thiết của dự án 5

2 Hiện trạng của đối tượng cần quản lý _5

3 Các chức năng chính yếu của đề tài _6

II Bảng phân công nhiệm vụ _7 III Tài liệu thiết kế 8

1 Tư duy thiết kế 8

2 Phân tích yêu cầu người dùng 8

a, Thông tin về Metadata 14

b, Thông tin về khóa chính 17

c, Thông tin về khóa ngoại 17

IV Cài đặt cơ sở dữ liệu 18

1 Cài đặt CSDL: _18

2 Query thể hiện chức năng của CSDL: 20

3 Trigger kiểm soát dữ liệu 25

V Kết luận và hướng phát triển _26

Trang 3

Danh sách hình vẽ

Danh sách kí hiệu – viêt tắt

Trang 4

RD ERDE-RCSDLSQL

Trang 5

I Tổng quan đề tài

1 Sự cần thiết của dự án

Kể từ sau đại dịch Covid – 19, các hoạt động tổ chức tiệc cưới ở Việt Nam diễn ra

vô cùng sôi nổi Đây đang được xem là ngành dịch vụ đầy tiềm năng, cũng từ đó nhiều nhà hàng tiệc cưới kết hợp với đa dạng dịch vụ được mở ra đáp ứng xu hướng thị trường

Tuy nhiên, hiện nay vẫn còn tồn tại một số nhà hàng hoạt động theo phong cách truyền thống hay các nhà hàng mới thành lập đang còn tập trung vào việc hoàn thiện

cơ sở vật chất, xây dựng thương hiệu, do đó việc đầu tư vào hệ thống quản lý đặt tiệc chưa được ưu tiên Họ có Website riêng nhưng chỉ để quảng bá thương hiệu là chính,

vì số lượng khách hàng chưa nhiều nên còn đang sử dụng phương pháp thủ công giai đoạn đầu

Điểm chung của hai kiểu nhà hàng này là hầu hết các thông tin tiệc cưới đều được quản lý thủ công bằng sổ tay, ghi chép đơn giản, lưu trữ dưới dạng giấy tờ, văn bản Điều này dẫn đến việc dễ xảy ra sai sót và nhầm lẫn trong quá trình xử lý thông tin, làm tốn nhiều thời gian của khách hàng trong việc lựa chọn nhà hàng phù hợp với nhucầu

Từ những hạn chế trên, cần xây dựng hệ thống quản lý đặt tiệc thay thế cho việc quản lý thủ công nhằm xử lý hiệu quả nghiệp vụ, nâng cao trải nghiệm khách hàng, tăng cường khả năng cạnh tranh trên thị trường

2 Hiện trạng của đối tượng cần quản lý

tiệc phải đến trực tiếp nhà hàng để đặt Tại đây, nhân viên quản lý ghi chép các thông tin từ khách hàng bao gồm tên, địa chỉ, số điện thoại, tên chú rể, tên cô dâu, ngày tổ chức, ca tổ chức, số lượng bàn Sau đó, nhân viên kiểm tra trong

sổ xem vào ngày và ca tổ chức khách hàng yêu cầu đã được đặt trước đó chưa, nếu đã được khách hàng khác đặt trước đó rồi thì nhân viên yêu cầu khách hàng đổi sang ngày hoặc ca khác, nếu khách hàng không đồng ý thì bị hủy Nếu sảnh đang còn trống thì nhân viên sẽ đưa danh sách các món ăn, đồ uống, dịch vụ cho khách hàng lựa chọn Sau khi hoàn tất, nhân viên tính tổng tiền bànđặt và khách hàng phải cọc 50% của tổng tiền bàn đặt đó

Kết thúc tiệc, nhân viên tính tiền còn lại khách phải trả và ghi hóa đơn thanh toán thành hai bản, khách hàng phải thanh toán toàn bộ số tiền còn lại cho nhà hàng

Trang 6

o Nhà hàng A muốn ứng dụng CNTT để thay thế tất cả các việc trên, nhân viên chỉ cần thao tác đơn giản trên máy tính có thể nhanh chóng nhập thông tin khách hàng, kiểm tra trạng thái sảnh, tính toán hóa đơn tự động.

3 Các chức năng chính yếu của đề tài

chỉ nhận đặt tiệc khi loại sảnh có ngày và ca tổ chức đang còn trống

khách hàng

II Bảng phân công nhiệm vụ

Thành viên nhóm thiết kế

100%

Trang 7

Thành viên nhóm phát triển

Thành viên nhóm thiết kếThành viên nhóm phát triển

100%

o Nhóm trưởng : Vai trò điều phối và đốc thúc các thành viên

o Biên tập viên: Tổng hợp nội dung, trình bày đồ án, in ấn …

o Thành viên nhóm thiết kế: Xây dựng ý tưởng, thiết kế các mô hình

o Thành viên nhóm phát triển: Xây dựng CSDL trên SQL, viết các query thể

hiện các chức năng

o Phát ngôn viên: Người trình bày và soạn trình chiếu.

1 Tư duy thiết kế

Trang 8

Hình 1 Mô hình phân cấp chức năng

2 Phân tích yêu cầu người dùng

Đối tượng sử dụng: Nhân viên trực và nhận đơn đặt tiệc

Yêu cầu

món ăn, đồ uống, dịch vụ, hóa đơn

một khách hàng

một khách hàng

Trang 9

Ràng buộc:

việc

o Sảnh đặt phải hợp lệ, nếu trước đó đã có khách đặt loại sảnh vào ngày và ca tổ chức thì sẽ không nhận đặt nữa

bị tính tiền phạt, tiền phạt/ngày bằng 1% tổng giá bàn

3 Mô hình E-R

a, Bảng xác định các thực thể

b, Bảng xác định thuộc tính cho các thực thể

Tên sảnhLoại sảnh

Số lượng bàn tối thiểu

Số lượng bàn tối đa

Tên khách hàng

Số điện thoạiEmailĐịa chỉ

Trang 10

Đặt tiệc Mã đặt tiệc

Mã khách hàng

Mã sảnhTên chú rểTên cô dâuNgày đặt tiệcNgày tổ chức

Ca tổ chức

Số lượng bàn đặtGiá bànTiền cọc

Tên món ănĐơn giá

Mã món ăn

Tên đồ uốngĐơn giá

Mã đồ uống

Số lượng

Tên dịch vụĐơn giá

Mã dịch vụ

Số lượng

Mã đặt tiệcNgày thanh toánHình thức thanh toánTổng tiền

Số ngày trễTiền phạtTiền còn lại

Trang 11

c, Xác định các quan hệ: ( vẽ ERD)

Hình 3 Mô hình quan hệ ERD

4 Mô hình dữ liệu quan hệ

a, Bảng THONGTINSANH

c, Bảng DATTIEC

Trang 12

d, Bảng MONAN

e, Bảng CT_BANAN

tính

Foreign keyDATTIEC(MaDatTiec)

Foreign keyMONAN(MaMonAn)

f, Bảng DOUONG

Trang 13

g, Bảng CT_DOUONG

tính

Foreign keyDATTIEC(MaDatTiec)

vụ

i, Bảng CT_DICHVU

Foreign keyDATTIEC(MaDatTiec)

Foreign keyDICHVU(MaDV)

dịch vụ

j, Bảng HOADON

đơn

Primary key

tiệc DATTIEC(MaDatTiec)Foreign key

thanhtoán

n

thứcthanh

Trang 14

MaDatTiec MaKH MaSanh TenChuRe

NgayDatTiec NgayToChuc CaToChuc SLBanDat GiaBan TienCoc

HOADON

MaHoaDon MaDatTiec NgayThanhToan HinhThucThanhToan TongTien SoNgayTre TienPhat TienConLai

KHACHHANG

MaKH TenKH SDT Email DChi

Hình 2 Lược đồ quan hệ RD

5 Mô hình mức vật lý

a, Thông tin về Metadata

tính

trị mặc NOT NULL

Trang 15

SANH

Trang 16

SLBanDat Int True

CT_DOUON

G

CT_DICHV

U

Trang 17

b, Thông tin về khóa chính

MaMonAn

MaDoUong

MaDV

c, Thông tin về khóa ngoại

khóa

Thuộctính

Bảng đượctham chiếu

KhóachínhFk_DATTIEC_KHACHHA

Trang 18

Fk_CT_BANAN_MONAN CT_BANA

N

MaMonAn

AnFk_CT_DICHVU_DATTIE

Fk_CT_DICHVU_DICHV

U

CT_DICHVU

MaDoUong

SLBanToiThieu int,

SLBanToiDa int )

(

MaKH nvarchar( 10 ) primary key,

TenKH nvarchar( 40 ),

SDT nvarchar( ), 20 Email nvarchar( 40 ),

DChi nvarchar( 50 ) )

(

MaDatTiec nvarchar( 10 ) primary key,

MaKH nvarchar( 10 ) foreign key references

KHACHHANG ( MaKH ),

MaSanh nvarchar ( 10 ) foreign key references

THONGTINSANH MaSanh ( ),

TenChuRe nvarchar( ), 40 TenCoDau nvarchar( 40 ),

NgayDatTiec date,

NgayToChuc date,

CaToChuc nvarchar( ), 10 SLBanDat int,

GiaBan money,

Trang 19

MONAN create table MONAN

(

MaMonAn nvarchar( 10 ) primary key,

TenMonAn nvarchar( ), 40 DonGia money )

(

MaDV nvarchar( 10 ) primary key,

TenDV nvarchar( 40 ),

DonGia money )

Trang 20

MaDatTiec nvarchar( 10 ) foreign key references

2 Query thể hiện chức năng của CSDL:

declare @TongGia money

select @TongGia = sum ( DonGia SLDichVu * )

from CT_DICHVU DICHVU ,

where CT_DICHVU MaDV DICHVU = MaDV

and MaDatTiec @MaDatTiec =

return @TongGia

end

Hàm tính tổng giá đồ uống của một mã đặt tiệc

CREATE FUNCTION dbo TONG_GIA_DO_UONG ( @MaDatTiec nvarchar ( )) 10

returns money

as

begin

declare @TongGia money

select @TongGia = sum ( DonGia SLDoUong * )

from DOUONG CT_DOUONG DATTIEC , ,

where CT_DOUONG MaDatTiec DATTIEC = MaDatTiec

and DOUONG MaDoUong CT_DOUONG = MaDoUong

and DATTIEC MaDatTiec = @MaDatTiec

return @TongGia

end

Hàm tính tổng giá một bàn ăn( chỉ gồm tiền món ăn)

CREATE FUNCTION dbo TONG_GIA_1_BAN ( @MaDatTiec nvarchar ( )) 10

Trang 21

FROM CT_BANAN MONAN ,

WHERE CT_BANAN MaMonAn MONAN = MaMonAn

AND MaDatTiec @MaDatTiec =

RETURN @TongGia

END

Hàm tính tổng tiền của một hóa đơn

CREATE function dbo TONG_HOA_DON ( @MaDatTiec nvarchar ( )) 10

returns money

as

begin

declare @TongGia money

declare @Gia1Ban money

declare @TongGiaBan money

declare @GiaDichVu money

declare @GiaDoUong money

select @Gia1Ban = dbo TONG_GIA_1_BAN @MaDatTiec ( )

set @TongGiaBan = @Gia1Ban * ( select SLBanDat from DATTIEC where MaDatTiec @MaDatTiec = ) select @GiaDichVu dbo = TONG_GIA_DICH_VU @MaDatTiec ( )

select @GiaDoUong = dbo TONG_GIA_DO_UONG ( @MaDatTiec )

from THONGTINSANH DATTIEC ,

WHERE THONGTINSANH MaSanh = DATTIEC MaSanh

and MaDatTiec @MaDatTiec =

set @TongGia = @TongGiaBan @GiaDichVu + + @GiaDoUong

return @TongGia

end

Stored procedure

Lưu thông tin khách hàng

CREATE PROC SP_LuuThongTinKhachHang

INSERT INTO KHACHHANG ( MaKH , TenKH SDT Email DChi , , , )

VALUES ( @MaKH , @TenKH @SDT @Email @DChi , , , )

END

Lưu thông tin đặt tiệc

Trang 22

DECLARE @NgayDatTiecDate date

DECLARE @NgayToChucDate date

SET @NgayDatTiecDate = CONVERT ( date , @NgayDatTiec 103 , ) Chuyển đổi từ varchar sang date (dd/mm/yyyy)

SET @NgayToChucDate = CONVERT (date, @NgayToChuc 103 , ) Chuyển đổi từ varchar sang date (dd/mm/yyyy)

INSERT INTO DATTIEC ( MaDatTiec , MaKH MaSanh TenChuRe TenCoDau NgayDatTiec NgayToChuc , , , , , ,

CaToChuc , SLBanDat GiaBan TienCoc , , )

VALUES ( @MaDatTiec , @MaKH @MaSanh @TenChuRe @TenCoDau @NgayDatTiecDate , , , , ,

@NgayToChucDate , @CaToChuc @SLBanDat 0 0 , , , )

INSERT INTO CT_BANAN ( MaDatTiec , MaMonAn )

SELECT @MaDatTiec MaMonAn ,

INSERT INTO CT_BANAN ( MaDatTiec , MaMonAn )

VALUES ( @MaDatTiec , @MaMonAn )

Trang 23

INSERT INTO CT_DICHVU ( MaDatTiec , MaDV SLDichVu , )

SELECT @MaDatTiec MaDV SLDichVu , ,

INSERT INTO CT_DOUONG ( MaDatTiec , MaDoUong SLDoUong , )

SELECT @MaDatTiec MaDoUong SLDoUong , ,

Tìm đơn hàng qua số điện thoại

CREATE PROCEDURE SP_Timdonhang_BySDT

@SDT NVARCHAR( 20 )

AS

BEGIN

SELECT *

FROM KHACHHANG DATTIEC ,

WHERE DATTIEC MaKH = KHACHHANG MaKH

AND SDT LIKE '%' @SDT + + '%'

END

Cập nhật giá bàn vào mã đặt tiệc

create procedure SP_update_giaban

@MaDatTiec nvarchar( 10 )

Trang 24

declare @GiaBan money

SELECT @GiaBan = dbo TONG_GIA_1_BAN @MaDatTiec ( )

update DATTIEC

set GiaBan = @GiaBan

where MaDatTiec = @MaDatTiec

declare @TongGiaBan money

declare @Gia1Ban money

select @Gia1Ban = dbo TONG_GIA_1_BAN @MaDatTiec ( )

set @TongGiaBan = @Gia1Ban * ( select SLBanDat from DATTIEC where MaDatTiec @MaDatTiec = )

update DATTIEC

set TienCoc = 0.5 @TongGiaBan *

where MaDatTiec = @MaDatTiec

end

THÊM HÓA ĐƠN

create proc SP_Themhoadon

declare @TongTien money

declare @TienCoc money

declare @TienPhat money

declare @TienConLai money

declare @SoNgayTre int

declare @NgayToChuc date

declare @NgayThanhToanDate date

set @NgayThanhToanDate = CONVERT ( date , @NgayThanhToan 103 , )

select @NgayToChuc NgayToChuc @TienCoc TienCoc = , =

from DATTIEC

where MaDatTiec = @MaDatTiec

set @TienPhat = null

set @SoNgayTre = DATEDIFF day ( , @NgayToChuc @NgayThanhToanDate , )

select @TongTien = dbo TONG_HOA_DON ( @MaDatTiec )

if( @SoNgayTre > 0 )

begin

set @TienPhat @TongTien @SoNgayTre = * * 0.01

set @TienConLai @TongTien @TienCoc = - + @TienPhat

end

else

begin

Trang 25

insert into HOADON

values ( @MaHoaDon , @MaDatTiec @NgayThanhToanDate @HinhThucThanhToan , , ,

@TongTien , @SoNgayTre @TienPhat @TienConLai , , )

end

3 Trigger kiểm soát dữ liệu

Trigger

Chỉ nhận đặt tiệc khi sảnh chưa có người đặt

CREATE TRIGGER TG_KiemTraSanh

ON DATTIEC

FOR INSERT , UPDATE

AS

BEGIN

DECLARE @count int

SELECT @count = COUNT (*) FROM DATTIEC

WHERE MaSanh IN ( SELECT MaSanh FROM inserted )

AND NgayToChuc IN ( SELECT NgayToChuc FROM inserted )

AND CaToChuc IN (SELECT CaToChuc FROM inserted )

AND MaDatTiec NOT IN (SELECT MaDatTiec FROM inserted )

IF @count 0 >

BEGIN

PRINT N'Sảnh đã có người đặt'

ROLLBACK TRAN END

END

Ngày đặt tiệc phải trước ngày tổ chức ít nhất 10 ngày

CREATE TRIGGER TG_NgayDatTiec

ON DATTIEC

FOR INSERT , UPDATE

AS

BEGIN

DECLARE @NgayDatTiec DATE

DECLARE @NgayToChuc DATE

SELECT @NgayDatTiec NgayDatTiec @NgayToChuc NgayToChuc = , =

FROM inserted

IF DATEDIFF day ( , @NgayDatTiec @NgayToChuc , ) < 10 AND DATEDIFF day ( , @NgayDatTiec ,

@NgayToChuc ) >= 0 ngày không hợp lệ

BEGIN

PRINT N'Ngày đặt tiệc phải trước ngày tổ chức tiệc cưới ít nhất 10 ngày'

ROLLBACK TRAN

Trang 26

PRINT N'Ngày tổ chức phải sau ngày đặt tiệc'

ROLLBACK TRAN END

declare @SLBan int

declare @SLBanToiDa int

declare @SLBanToiThieu int

select @SLBan SLBanDat = from inserted

select @SLBanToiDa = SLBanToiDa , @SLBanToiThieu = SLBanToiThieu

from THONGTINSANH inserted ,

where THONGTINSANH MaSanh inserted = MaSanh

if( @SLBan > @SLBanToiDa @SLBan or < @SLBanToiThieu )

Ngày thanh toán phải diễn ra trong hoặc sau ngày tổ chức tiệc cưới

create TRIGGER TG_NgayThanhToanHopLe

ON HOADON

FOR INSERT , UPDATE

AS

BEGIN

DECLARE @NgayThanhToan DATE

DECLARE @NgayToChuc DATE

SELECT @NgayToChuc = NgayToChuc

FROM inserted DATTIEC ,

WHERE inserted MaDatTiec DATTIEC = MaDatTiec

SELECT @NgayThanhToan NgayThanhToan =

END

V Kết luận và hướng phát triển

Vì giới hạn về mặt thời gian và khả năng còn hạn chế nên trên đây chỉ là một CSDL quản lý đơn giản phục vụ cho các thao tác nghiệp vụ cần thiết trong quản lý

Trang 27

tiệc cưới, chúng em cũng nhận thấy rằng đề tài cần có những phát triển để áp dụng vào thực tế

Từ CSDL này, có thể phát triển thêm các chức năng để tạo thành một CSDL quản lý tiệc cưới toàn diện như phân quyền sử dụng cho từng bộ phận trong nhà hàng như bộ nhận quản lý, bộ phận kiểm toán, bộ nhận đơn đặt tiệc, mỗi bộ phận sẽ có những chức năng riêng, phát triển chức năng tra cứu, bên cạnh đó có thể tổng hợp hóa đơn trong tháng để lập doanh thu mỗi tháng, xuất báo cáo giúp nhà hàng đưa ra chiến lược phát triển phù hợp

Về hướng phát triển về quy mô, đề tài hướng đến các tiệc cưới 10-20 bàn 1 ngày là hiệu quả nhất, với các hệ thống quản lý như quản lý sự kiện quy mô vừa và nhỏ hay quản lý đặt hàng có thể sử dụng lại CSDL vừa thiết kế

Ngày đăng: 22/08/2024, 15:05

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w