Chương I : Mơ hình và bài tốn nghiệp vụ của quán café
A.
Những vẫn đề cần đặt ra
1. Nhiệm vụ và mục đích hoạt động
- Nhiệm vụ của quàn café là bằng cách đáp ứng nhu
cầu của khách hàng một cách tốt nhất với những đồ
ăn, đồ uống và thư dãn để đạt được thu nhâ[pj cao
troing điều kiện có thể. Rõ ràng là, để đáp ứng được
nhu cầu của khách hàng một cách tốt nhất, cửa hàng
cần phải có danh mục sản phẩm da dạng và chất
lượng. Bên cạnh đó là sự phục vụ nhanh chóng và
niềm nởi của nhân viên. Những yêu cầu đặt ra tuy
đơn giản nhưng khơng dễ thực hiện vì mỗi cửa hàng
ln tồn tại những hạn chế về không gian, quy mô và
nguồn lực.
2. Mơ hình tổ chức và cơ chế hoạt động
- Quản lý nhóm sản phẩm
Do quán kinh doanh nhiều loại sản phẩm nên nhóm
sản phẩm được đưa ra để phân loại những sản phẩm
cũng loại. Mỗi một nhóm sẽ có một mã để định danh
và đi kèm theo là tên nhóm
- Quản lý danh mục sản phẩm
Mỗi một sản phẩm đều được chia vào 1 nhóm sản
phẩm. Những sản phẩm này cũng được đánh mã sản
phẩm và được ghi tên cùng với giá cả để cho khách
hàng dễ dàng chọn lựa.
- Quản lý bàn:
Khi khách vào quán thì khách sẽ chọn chỗ ngồi phù
hợp( một mình, nhóm từ 3 đến 5 người, nhóm 10
người) . Mỗi bàn được đánh mã số(được ghi ở trên
mặt bàn) để thuận tiện cho việc quản lý cũng như
việc phục vụ khách hàng được nhanh chóng. Khi bàn
đang có khách thì trạng trái sẽ là bận cịn khi khách
rời đi thì sẽ trở lại trạng thái chờ
- Quản lý bán hàng
o Khi khách hàng đã ngồi vào bàn thị sẽ có nhân
viên đến để phục vụ. Nhân viên sẽ đưa menu để
cho khách hàng lựa chọn sản phẩm. Các sản
phẩm khách yêu cầu sẽ được nhân viên ghi lại
và đưa về quầy.
Nhân viên thu ngân sẽ tiến hành lập hóa đơn
cho khách và để hóa đươn đó ở trạng thái chờ
thanh toán. Khi khách hàng dùng xong sản
phẩm và muốn thanh tốn thì sẽ đi ra đi ra quầy
thu ngân để thanh tốn hóa đơn. Sau khi nhân
tiền từ khách thì nhân viên thu ngân sẽ xuất hóa
đơn và đưa cho khách hàng
o Mỗi một hóa đơn sẽ bao gồm: Mã hóa đơn,Mã
nhóm sản phẩm, Mã SP, Mã bàn, Số lượng,…
- Quản lý nhân viên
Mỗi một nhân viên sẽ có một nghiệp vụ riêng: thu
ngân, phục vụ,pha chế,…. Mỗi nhân viên sẽ được
quản lý bởi mã nhân viên. Thông tin về nhân viên bao
gồm: Mã nhân viên, Tên nhân viên,….
- Báo cáo
Hàng tuần , tháng, nhân viên quản lý quản lý quầy
phải làm báo cáo cho chủ cửa hàng thông tin về
doanh thu và các mặt hàng bán được. Những thông
tin này giúp chủ cửa hàng có thể lập kế hoạch mua
các vật tư và thực phẩm phục vụ việc chế biến sản
phẩm đáp ứng yêu cầu của khách hàng ngày.
Hiện trạng của cửa hàng và những vấn đề đặt ra
- Do vị trí và danh tiếng nên cửa hàng thường rất đông
khách. Vào những lúc này khách thường phải chờ đợi
lâu mới được phục vụ.
- Sự biến động lớn của khách hàng: lúc thì rất đơng,
lúc lại bình thường do đó gây ra sự thiếu nhân sự gay
gắt. Việc tổng kết chậm( hàng tuần) và khơng phân
tích kịp nhu cầu người dùng nên không thỏa mãn
nhiều nhu cầu mà khách hàng mong muốn.
Giải pháp nâng cao hiệu quả quản lý ở quán café
Những vấn đề đặt ra bên trên cho thấy, cần có một
giải pháp để nâng cao hiệu quả hoạt động của quán
để tăng doanh thu và đáp ứng yêu cầu của khách
hàng một cách tốt nhất.
Một trong các phương pháp để nâng cao hiệu quả là
tin học hóa các hoạt động quản lý và vận hành trong
điều kiện trang thiết bị cho phép. Từ nghững vấn đề
phát hiện ta có thể có những giải pháp tương ứng sau
đây:
o
3.
4.
o
Thanh tốn dự vào phần mềm đẽ
Chương II: Phân tích hệ thống quản lý
1.
Xây dựng mơ hình thực thể liên kết
Tên được chính
xác của các đặc
trưng
A.Nhóm sản
phẩm
Mã nhóm SP
Tên nhóm SP
B.Danh mục sản
phẩm
Mã sản phẩm
Tên sản phẩm
Giá
C.Bàn
Mã bàn
Vị trí
Trạng thái
D.Hóa Đơn
Mã hóa hơn
Số khách hàng
Mã nhân viên
Mã bàn
Ngày lập
Mã sản phẩm
Tên sản phẩm
Đơn vị tính
Số lượng
Đơn giá
Thành tiền
Viết gọn
tên đặc
trưng
Đánh dấu loại đi ở mỗi bước
1
2
3
MNSP
Tên NSP
x
x
Mã SP
Tên SP
Giá
x
x
x
Mã bàn
Vị trí
TT
x
x
x
Mã HĐ
Số KH
Mã NV
Mã bàn
x
x
x
x
x
Mã SP
Tên SP
DVT
SL
Đơn giá
Thành
tiền
x
x
x
x
x
x
x
x
E.Nhân viên
Mã nhân viên
Mã NV
x
Tên nhân viên
Tên NV
x
Địa chỉ
ĐC
x
SĐT
SĐT
x
2. Xác định các thực thể, thuộc tính định danh
Thuộc tính tên gọi
tìm được
Tên nhóm SP
Thực thể
tương ứng
Nhóm SP
Thuộc tính
Định danh
Mã nhóm SP x
Tên nhóm SP
Tên sản phẩm
SP
Mã SP
x
Tên SP
Giá
Hóa đơn
Hóa đơn
Mã HĐ
x
Mã NV
Mã bàn
Ngày lập
Nhân viên
Nhân viên
Mã NV
x
Tên NV
SDT
Địa chỉ
Bàn
Bàn
Mã bàn
x
Vị trí
Trạng thái
3. Xác định mối quan hệ và thuộc tính giữa chúng
3.1 Các mối quan hệ tương tác
Động từ tìm được LẬP
3.2
4.
Câu hỏi cho
động từ
LẬP
Lập cái gì?
Ai lập?
Lập khi nào?
Các mối quan hệ
Thực thể
Thuộc tính
HĨA ĐƠN
NHÂN VIÊN
Ngày lập
phụ thuộc
Xét từng cặp thực thể
SP
Nhóm SP
HĨA ĐƠN
SP
KH
HĨA ĐƠN
BÀN
HĨA ĐƠN
Vẽ mơ hình quan hệ thực thể
Mối quan hệ Thuộc tính
Gồm
Có
Có
Thuộc
liên kết
Chương III. Thiết kế logic về hệ thống cơ sở dữ liệu
1. Chuyển ERD sang mơ hình quan hệ
- NHĨM SP( Mã nhóm SP, Tên nhóm SP)
<1>
- SP( Mã SP, Mã nhóm SP ,Tên SP, Giá)
<2>
- HĨA ĐƠN(Mã HĐ , Mã SP,Ngày lập,Số lượng, ĐVT)
<3>
Chuẩn hóa <5>
HĨA ĐƠN(MÃ HĐ, Mã NV, Mã Bàn, Ngày lập) <3>
CHI TIẾT HÓA ĐƠN(Mã HĐ, Mã SP, Tên SP,ĐVT, SL,
Đơn giá) <4>
- NHÂN VIÊN( Mã NV,Tên NV, SDT, Địa chỉ) <5>
- BÀN (Mã bàn, Vị trí , Trạng thái)
<6>
Lập bảng xác định liên kết
-
2.
Thuộc tính
khóa
Mã nhóm SP
Mã SP
Mã HĐ
Mã NV
Mã Bàn
<1>
<2>
K
C
K
<3>
K
C
C
<4
>
<5
>
<6
>
C
C
K
K
Liên kết
<1>-<2>
<2>-<4>
<3>-<4>
<5>-<3>
<6>-<3>
Mã HĐ, Mã SP
3. Vẽ biểu đồ
Dòng loại
I. Bảng cơ sở dữ liệu
1. Bảng Nhóm món
Tên bảng: nhommon
Tên trường
Kiểu dữ liệu
MaNhom
INT
TenNhom
VARCHAR
Kích thước
Ràng buộc
Ghi chú (ý nghĩa)
khóa chính, unique,
not null,
auto_increment
Mã nhóm
45
not null
Tên nhóm
Kích thước
Ràng buộc
Ghi chú (ý nghĩa)
2. Bảng Thực đơn
Tên bảng: thucdon
Tên trường
Kiểu dữ liệu
MaMon
INT
khố chính, unique,
not null,
auto_increment
Mã món
TenMon
VARCHAR
not null
Tên món
MaNhom
INT
khóa ngoại, not null
Mã nhóm
DonGia
FLOAT
not null,check
Đơn giá
DVTinh
VARCHAR
20
not null
Đơn vị tính
45
3. Bảng Hóa đơn
Tên bảng: hoadon
Tên trường
Kiểu dữ liệu
Kích thước
Ràng buộc
Ghi chú (ý nghĩa)
MaHD
VARCHAR
15
khóa chính, unique,
not null
Mã hóa đơn
MaBan
INT
khóa ngoại, not null
Mã bàn
TenNV
VARCHAR
not null
Mã nhân viên
GioDen
DATETIME
not null
Giờ khách đến
GioCapNhat
DATETIME
not null
Giờ cập nhật lại hóa
đơn
TongTien
FLOAT
TrangThai
VARCHAR
45
Tổng tiền
45
not null
Trạng thái thanh
tốn hay chưa
thanh tốn
4. Bảng Chi tiết hóa đơn
Tên bảng: cthoadon
Tên trường
Kiểu dữ liệu
Kích thước
Ràng buộc
Ghi chú (ý nghĩa)
MaHD
VARCHAR
15
khóa chính,
khóa ngoại,
not null
Mã hóa đơn
MaMon
INT
khố ngoại,
not null
Mã món
TenMon
VARCHAR
not null
Tên món
SoLuong
INT
not null,
Số lượng
45
check
DVTinh
VARCHAR
DonGia
ThanhTien
20
not null
Đơn vị tính
FLOAT
not null,
check
Đơn giá
FLOAT
not null
Thành Tiền
5. Bảng Bàn
Tên bảng: ban
Tên trường
Kiểu dữ liệu
MaBan
INT
Kích thước
Ràng buộc
Ghi chú (ý nghĩa)
khóa chính, not
null,
Mã bàn
unique,
auto_increment
TenBan
VARCHAR
45
not null
Tên bàn
TrangThai
VARCHAR
45
not null
Trạng thái
6. Bảng Nhân viên
Tên bảng: nhanvien
Tên trường
Kiểu dữ liệu
Kích thước
Ràng buộc
Ghi chú (ý nghĩa)
MaNV
VARCHAR
10
khóa chính,
not null,
Mã nhân viên
unique
TenNV
VARCHAR
45
not null
Tên nhân viên
Sdt
VARCHAR
10
not null
Số điện thoại
DiaChi
VARCHAR
150
not null
Địa chỉ
TrangThai
VARCHAR
45
not null
Trạng thái
7. Bảng Tài khoản
Tên bảng: taikhoan
Tên trường
Kiểu dữ liệu
Kích thước
Ràng buộc
Ghi chú (ý nghĩa)
UserName
VARCHAR
45
khóa chính,
Tên tài khoản
khóa ngoại,
not null,
unique
Password
VARCHAR
Level
INT
45
not null
Mật khẩu
not null
Phân cấp tài khoản
III. Những truy vấn dùng để giải quyết các vấn đề của bài tốn
Vấn đề
Tìm
kiếm
Mơ tả
Truy vấn
Tìm kiếm dữ
Select
liệu có trong các
cột có của Table
Thêm
Thêm dữ liệu
vào Table
Sửa
Sửa dữ liệu đã
có trong Table
Xóa
Xóa dữ liệu đã
có trong Table
Thanh
Để tránh việc
tốn hóa khi lưu trữ hóa
đơn
đơn khơng đồng
bộ, như tổng
tiền của hóa đơn
khơng bằng tổng
tiền của các món
ăn trong hóa
đơn.
Giờ đến, Tự động cập
giờ cập nhật thời gian
nhật của khi hóa đơn
hóa đơn, được tạo(thời
trạng
gian sửa hóa
thái của đơn sẽ tự động
Insert
Update
Delete
Code
Select * From thucdon where Trangthai='1'
-- Trạng thái là để bọn em phân biệt giữa sản phẩm xóa
và giữ ngun, vì do khóa ngoại của cthd nên thucdon
khơng xóa được
INSERT INTO
thucdon(TenMon,MaNhom,DVTinh,DonGia,TrangThai)
VALUE(?,?,?,?)
update thucdon set TenMon = ?, MaNhom = ?, DVTinh
= ? ,DonGia = ? WHERE MaMon = ?
DELETE FROM ban WHERE MaBan = ?
Transaction
Trigger
CREATE DEFINER=`root`@`localhost` TRIGGER
`autoAddData` BEFORE INSERT ON `hoadon` FOR
EACH ROW BEGIN
set @mahd1 =
CONCAT('HD',date_format(date(now()),'%Y%m%d'));
hóa đơn,
nhân
viên,
bàn
Mã hóa
đơn
Tính
tổng hóa
đơn hay
update
tổng hóa
đơn
cập nhật cùng
thời gian tạo hóa
đơn), khi ta sửa
hóa đơn vào 1
khoảng thời gian
sau khi khách đã
thanh toán sẽ tự
động được cập
nhật lại giờ cập
nhật. Khi thêm
dữ liệu vào 1
bảng thì trạng
thái có thể tự
động thêm vào
mà khơng cần
nhập dữ liệu.
Tự động cập
Trigger
nhật mã hóa đơn
Khi CTHD được Trigger
thêm vào thì
tổng của tất cả
món trong
CTHD đó sẽ đc
tính vào cột tổng
tiền của HD và
trạng thái hóa
đơn sẽ chuyển
sang “Đã thanh
tốn”
SELECT Count(MaHD) into @countMaHD FROM
hoadon WHERE MaHD Like concat(@mahd1, '%');
set @countMaHD = @countMaHD+1;
if @countMaHD > 999 then
set @mahd2 = @mahd1;
set @mahd = CONCAT(@mahd2 ,
@countMaHD);
elseif @countMaHD > 99 then
set @mahd2 = CONCAT(@mahd1, '0');
set @mahd = CONCAT(@mahd2,
@countMaHD);
elseif @countMaHD < 9 then
set @mahd2 = CONCAT(@mahd1, '000');
set @mahd = CONCAT(@mahd2,
@countMaHD);
else
set @mahd2 = CONCAT(@mahd1, '00');
set @mahd = CONCAT(@mahd2, @countMaHD);
end if;
SELECT count(MaHD) into @countMaHD1
FROM hoadon WHERE MaHD = @mahd;
if(@countMaHD1=1) then
set @countMaHD = @countMaHD+1;
set @mahd = CONCAT(@mahd2, @countMaHD);
end if;
set new.MaHD = @mahd;
set new.Gioden = now();
set new.GioCapNhat = now();
set new.TrangThai = 'Chưa thanh toán';
END
CREATE DEFINER=`root`@`localhost` TRIGGER
`addTongTienHD` AFTER INSERT ON `cthoadon`
FOR EACH ROW BEGIN
declare tong float;
select sum(ThanhTien) into tong from cthoadon
where MaHD=new.MaHD;
UPDATE hoadon
set TongTien = tong,
TrangThai='Đã thanh toán'
where MaHD = new.MaHD;
Xóa
CTHD
Khi ta xóa HD
sẽ tự dộng xóa
CTHD
Trigger
Thống
kê
Tạo 1 Table dựa View
trên các Table
đã có sẵn, từ đó
có thể xem được
các thơng tin mà
ta muốn mà
khơng cần phải
tìm từng Table
để xem các
thơng tin cần
thiết.
Tổng
tiền từ
các hóa
đơn
được
thống kê
theo thời
gian
Tính tổng tồn
Stored
bộ tổng tiền có
Procedures
trong cột
TongTien của
hóa đơn theo
khoảng thời gian
mà ta tìm kiếm.
END
CREATE DEFINER=`root`@`localhost` TRIGGER
`deleteCTHD` BEFORE DELETE ON `hoadon` FOR
EACH ROW BEGIN
delete from cthoadon
where MaHD = old.MaHD;
END
CREATE
ALGORITHM = UNDEFINED
DEFINER = `root`@`localhost`
SQL SECURITY DEFINER
VIEW `quanlyquancaphe`.`view_tksoluong_all` AS
SELECT
`quanlyquancaphe`.`cthoadon`.`MaMon` AS
`MaMon`,
`quanlyquancaphe`.`cthoadon`.`TenMon` AS
`TenMon`,
SUM(`quanlyquancaphe`.`cthoadon`.`SoLuong`)
AS `TongTieuThu`
FROM
`quanlyquancaphe`.`cthoadon`
GROUP BY
`quanlyquancaphe`.`cthoadon`.`MaMon` ,
`quanlyquancaphe`.`cthoadon`.`TenMon`
ORDER BY
`quanlyquancaphe`.`cthoadon`.`SoLuong` DESC
CREATE DEFINER=`root`@`localhost` PROCEDURE
`sp_tongtienHD`(in day1 datetime, in day2 datetime)
BEGIN
-- DROP TEMPORARY TABLE IF EXISTS
sp_tongtienAllHD;
-- CREATE TEMPORARY TABLE IF NOT EXISTS
sp_tongtienAllHD AS
SELECT sum(TongTien) FROM hoadon where
GioDen BETWEEN day1 AND day2;
-- select * from sp_tongtienAllHD;
END