Tải bản đầy đủ (.docx) (11 trang)

Đồ án cơ sở dữ liệu, khoa công nghệ thông tin (1)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (256.98 KB, 11 trang )

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


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


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



×