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

Bài tập lớn môn cơ sở dữ liệu (6)

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 (637.48 KB, 44 trang )

TRƯỜNG ĐẠI HỌC XÂY DỰNG
KHOA CNTT

BÁO CÁO ĐỒ ÁN MÔN HỌC

Cơ sở dữ liệu
Đề tài:
Quản Lý Web Đồ Gỗ

Nhóm thực hiện (nhóm 3)
Thành viên: 1. Nguyễn Quang Huy
2. Trần Đức Linh
3. Lưu Ngọc Long
Lớp: 63IT3
GVHD: Nguyễn Đình Anh

Hà Nội, 9/2021

1


Phần I. MƠ TẢ BÀI TỐN
A. Phân tích và triển khai dự án
1. LÝ DO CHỌN ĐỀ TÀI
Như chúng ta đã biết, việc quản lý kinh doanh của nhiều cửa hàng vẫn cịn
rất thủ cơng, việc ghi chép thơng qua sổ sách gặp rất nhiều trở ngại, gây khó
khăn cho người quản lý khi muốn xem xét tình trạng các mặt hàng theo ngày,
tháng.
Điều đó tồn tại nhiều bất cập như: gặp khó khăn trong q trình tìm kiếm,
người quản lý có thể gặp sai sót hoặc nhầm lẩn với những con số, nó đem lại hậu
quả vơ cùng to lớn. Tuy nhiên, ngày nay cùng sự phát triển của thời đại đi đôi


với sự phát triển của công nghệ thông tin, việc ứng dụng công nghệ vào đời sống
là một nhu cầu hết sức cấp thiết. Nó thay thế con người làm từ những việc từ
đơn giản đến phức tạp, thậm chí là những việc mà con người khơng thể làm. Vì
vậy nhóm chúng em chọn thực hiện đề tài xây dựng phần mềm quản lý mua bán
và quản lý xướng gỗ để giúp cho nhà quản lý, các cửa hàng hạn chế những sai
sót trong q trình mua bán, cũng như dễ dàng quản lý các mặt hàng nhập xuất,
tồn kho,... , từ đó đưa ra chiến lược kinh doanh tối ưu để đem lại hiệu quả kinh
tế cao nhất.

2. PHẠM VI HOẠT ĐỘNG
Quản lý và thống kê tình hình mua bán của một cơng ty với phần mềm hỗ trợ
là Hệ quản trị cơ sở dữ liệu và ngơn ngữ lập trình JavaSpring .

B.MƠ TẢ NGHIỆP VỤ
2


1.Mô tả nghiệp vụ
⮚ Giới thiệu
Cửa hàng chuyên kinh doanh các loại mặt hàng đồ gỗ mỹ nghệ cao
cấp. Cửa hàng nhận bán buôn, bán lẻ với các chế đỗ ưu đãi cho những
khách hàng đặt đơn số lượng lớn và dịch vụ hàng theo yêu cầu .
⮚ Phân tích hiện trạng hệ thống
o Hàng hóa:
● Mặt hàng mới nhập về sẽ lưu vào một sổ quản lý,thông tin
gồm:Ngày nhập, tên sản phẩm, kích thước, giá,
o Xuất hàng hóa:
● Khách hàng trực tiếp đến cửa hàng để xem sản phẩm, trao đổi
trực tiếp với chủ của hàng về loại sản phẩm, kích thước, giá
thành. Chủ cửa hàng sẽ tư vấn cho khách hàng sản phẩm phù

hợp với nhu cầu của khách hàng. Khách hàng sẽ tiến hành đặt
hàng, trao đổi về hình thức thanh tốn và vận chuyển sản phẩm.
Chủ cửa hàng sẽ tiến hành lập hóa đơn cho khách hàng.
o Báo cáo sản phẩm và doanh thu:
● Chủ của hàng trùng bày nhiều mặt hàng cùng loại để thuận tiện
cho khách mua và giúp nhân viên bán hàng dễ kiểm sốt hàng
hóa để bổ sung thêm khi hết hàng. Hàng tháng căn cứ vào tình
hình bán ở cửa hàng, bộ phận nghiệp vụ sẽ thống kê những mặt
hàng nào hết hoặc cịn ít trong kho để tiến hành u cầu nhập
sản phẩm mới
● Sau một tháng cửa hàng sẽ tiến hành tổng báo cáo doanh thu
trong tháng đó rồi gửi cho quản lý
⮚ Khảo sát yêu cầu
Hoạt đông quản lí hàng hóa và mua bán trực tiếp tại cửa hàng hồn
tồn thủ cơng bộc lỗ rõ những hạn chế :
• Khơng đáp ứng được nhu cầu trên phạm vi lớn.
• Khơng đáp ứng được độ chính xác trong việc quản lí sản
phẩm và tài chính.
• Khơng đáp ứng được nhu cầu thông tin phục vụ khác hàng.
⮚ Hệ thống website sinh ra với mục đích đáp ứng được các nhu cầu cơ bản
sau:
• Mở rộng phạm vi kinh doanh.
3


• Quản lí hóa đơn và sản phẩm chính xác hơn.
• Có khả năng lưu trữ thơng tin cụ thể hơn.

C. Hệ thống dự định sẽ làm
Chương trình xây dựng nhằm mục đích phục vụ cơng việc quản lý Kho đồ gỗ

Bao gồm những nghiệp vụ chính sau:

1. Quản lý tài khoản:
- Đăng ký tài khoản
- Đăng nhập tài khoản
- Phân quyền tài khoản

2. Quản lý sản phẩm (Tạo mới, chỉnh sửa, xóa bỏ)
- Quản lý thơng tin sản phẩm nhâp/xuất.
- Quản lý loại sản phẩm nhâp/xuất.

3. Quản lý kho
Chức năng của quản lý kho:
- Xem số lượng sản phẩm trong kho.
- Quản lý nhập xuất kho.
-quản lý nhà cung cấp
-quản lý khách hàng
-quản lý hố đơn nhập/xuất

4. Mơ tả sơ lược quy trình quản lý kho
4.1. Quy trình nhập kho:
- Nếu có sản phẩm, thì tăng số lượng sản phẩm trong kho.
- Nếu chưa có sản phẩm thì tiến tạo mới sản phẩm.
- Lưu trữ thông tin nhà cung cấp.
- Lưu trữ thơng tin hố đơn nhập.
4


4.2. Quy trình xuất:
Khách hàng sẽ xem qua và đặt hàng trên web. Khi đặt hàng, khách hàng sẽ cần tạo

1 tài khoản để tiến hành thanh tốn.
Thơng tin của khách hàng sẽ được lưu trong danh mục tài khoản khách hàng.
Sau khi khách hàng thanh toán, hoá đơn sẽ được lưu trữ trogn kho hoá đơn xuất.

4.3. Hiển thị sản phẩm trong kho
Sản phẩm trong kho sẽ được hiển thị trên trang web bao gồm số lượng, kiểu, kích
thước…
Khách hàng và người quản tri có thể xem tìm kiếm thông tin về sản phẩm thông
qua website.

5. Báo cáo thống kê
Người quản lý sẽ đăng nhập vào trang chủ để tiến hành xem hố đơn nhập, hóa đơn
xuất, thơng tin khách hàng, thông tin nhà cung cấp, sản phẩm, để tiến hành thêm
sửa xoá.
-xem thống kê doanh thu theo từng tháng
- xem danh sách hoá đơn , nhà cung cấp ,người dùng

Phần II : Mơ hình thực thể kết hợp
A. Xác định thực thể
- Thực thể vai trò : gồm các thc tính : id của vai trị (id) , tên vai trò
(ten) , mã vai trò (ma)
- Thực thể Nguoidung_vaitro: gồm các thuộc tính : số thứ tự (id) , mã
người dùng (userid) , vai trò của người dùng (roleid)
- Thực thể người dùng : gồm các thuộc tính : mỗi người dùng được
gán một mã người dùng (id) , địa chỉ của người dùng (diachi) , họ tên
người dùng (hoten) , thông tin để liên hệ qua gmail (gmail),số điện
thoại người dùng (sodienthoai) , trạng thái để xem người dùng cịn
hoạt động hay khơng (trạng thái), tên đăng nhập của người dùng (tài
khoản )
- Thực thể hóa đơn : gồm các thuộc tính : mã riêng được cập nhật của

từng hóa đơn (mã hóa đơn) , hóa đơn đã duyệt hay chưa được
duyệt (trạng thái) , mã người dùng trong hóa đơn (userID)
- Thực thể chi tiết hóa đơn : gồm các thực thể :
5


Số lượng các sản phẩm đã mua ( soluong) , mã của từng chi tiết hóa
đơn ( mahoadon),
Mã của sản phẩm đã mua ( masanpham)
- Thực thể sản phẩm : gồm các thuộc tính :
Mỗi sản phẩm được gán duy nhất một mã sản phẩm ( masanpham) ,
chất liệu tạo ra sản phẩm (chatlieu) , chiều dài của sản phẩm
(chieudai),chiều rộng của sản phẩm (chieurong), nội dung giới thiệu
sản phẩm (noidung) , mô tả ngắn khi chưa click vào sản phẩm
(motangan), số lượng đã bán được (soluongmua), số lượng sản
phẩm còn tồn trong kho (soluongton), tiêu đề của sản phẩm
(tieude) , mã của từng loại sản phẩm (matheloai)
- Thực thể loại sản phẩm : gồm các thực thể : gán từng mã loại sản
phẩm cho từng loại sản phẩm ( id), tên của loại sản phẩm (ten), mô
tả ngắn của loại sản phẩm (Motangan) , ảnh loại sản phẩm
(Anhdaidien)

B. Mối quan hệ giữa các thực thể
● Thực thể VAITRO và NGUOIDUNG
Tạo ra một bảng là NGUOIDUNG_VAITRO làm liên kết cho 2 bảng vai trị và
người dùng. Vì một người có nhiều vai trị và một vai trị có nhiều người dùng.

● Thực thể NGUOIDUNG và HOADON:có mỗi kết hợp (N-1).
Vì một người dùng có nhiều hóa đơn nhưng một hóa đơn chỉ thuộc 1
người dùng.


6


Khách có thể mua một hay nhiều mặt hàng, mặt hàng có thể khơng được ai
mua, có thể được mua bởi nhiều khách hàng. Khi mua thì xuất hiện số
lượng, ngày lập

● Thực thể HOADON và CHITIETHOADON: có mỗi kết hợp (1-N).Vì một
hóa đơn thì có nhiều chi tiết hóa đơn

● Thực thể CHITIETHOADON và SANPHAM và HOADON: có mỗi kết
hợp (1-1).Vì mỗi chi tiết hóa đơn chỉ hiển thị cho một sản phẩm

7


● Thực thể LOAISANPHAM và SANPHAM: có mỗi kết hợp (1-N).Vì một
sản phẩm chỉ thuộc 1 loại sản phẩm mà 1 loại sản phẩm thì gồm
nhiều sản phẩm

C.

Sơ đồ thực thể và các liên kết

D. nhiệm vụ của thuộc tính
- VaiTro(MaVaiTro,Ten,Ma)
- NguoiDung_VaiTro(Ma,MaNguoiDung,MaVaiTro)
8



- NguoiDung (MaNguoiDung, DiaChi, HoTen, Gmail, PassWord, SoDienThoai,
TrangThai, TaiKhoan)
- HoaDon (MaHoaDon, TrangThai, MaNguoiDung)
- ChiTietHoaDon (MaHoaDon, SoLuong, MaSanPham)
- SanPham (MaSanPham, ChieuDai, ChieuRong, NoiDung, Gia, MoTaNgan,
SoLuongMua, SoLuongTon, TieuDe, MaTheLoai)
- LoaiSanPham (MaLoaiSanPham, Ten, MoTaNgan,AnhDaiDien)

Chú thích :Những thuộc tính gạch chân là các khóa chính

Phần III : Tạo Database và xử lý truy vấn
A. Thiết kế bảng
- Bảng categories_product
+code:

+select:

- Bảng Deal_out_Product
+code:
9


+select:

- Bảng Deal_in_material
+code:

+select:


- Bảng material
+code:
10


+select:

- Bảng Nuser
+code:

+select:

11


- Bảng partner
+code

+select:

- Bảng Product
+code:

+select:

12


- Bảng Role
+code:


+select:

- Bảng Show_Deal_out_Product
+code:

+select:

- Bảng Show_Deal_in_material
+code:

13


+select:

- Bảng user_role
+code:

+select:

- Bảng Deal_out_material
+code:

14


+select:

- Bảng Show_Deal_out_material

+code:

+select:

15


- Bảng Deal_in_product
+code:

+select:

- Bảng Show_Deal_in_product
+code:

+select:

16


B. Tạo khóa ngoại
- Deal_out_product ->Nuser

- Deal_in_material -> partner

- Product -> Categories_Product

- Show_Deal_out_Product -> Deal_out_Product

- Show_Deal_out_Product -> Product


- Show_Deal_in_material -> material

- Show_Deal_in_material -> Deal_in_material
17


- User_role -> Nuser

- User_role -> Role

- Deal_out_material -> Nuser

- Show_Deal_out_material -> Deal_out_material

- Show_Deal_out_material -> material

- Deal_in_product -> Nuser

- Show_Deal_in_product -> Deal_in_product

- Show_Deal_in_product -> Product

C. Diagram_xuonggo

18


D. Truy vấn bằng các kỹ thuật trigger , Stored procedured ,view


Vấn đề

Kỹ thuật

Câu Lệnh
create trigger xoahd_nhap

-Khi xóa 1 hóa đơn Trigger
nhập xuất vật tư cần
xóa kèm các chi tiết
hóa đơn nhập

on Deal_in_material
INSTEAD OF DELETE
as
DECLARE @iddeal int
Select @iddeal = ID from deleted
Delete from Show_Deal_in_material
where id_deal=@iddeal

19


create trigger xoahd_xuat_material
on Deal_out_material
INSTEAD OF DELETE
as
DECLARE @iddeal int
Select @iddeal = ID from deleted
Delete from Show_Deal_out_material

where id_deal=@iddeal

(đồng thời phải giảm
Hoặc tăng số lượng tồn
của bảng vật tư)
create trigger xoacthd_nhap
on Show_Deal_in_material
INSTEAD OF DELETE
as
declare @id_vt int
declare @soluong bigint
select @soluong =quanlity from
deleted
select @id_vt =id_material from
deleted
update material set quantity_in_stock
= quantity_in_stock- @soluong where
ID= @id_vt

20


create trigger xoacthd_xuat_material
on Show_Deal_out_material
INSTEAD OF DELETE
as
declare @id_vt int
declare @soluong bigint
select @soluong =quanlity from
deleted

select @id_vt =id_material from
deleted

-Khi xóa 1 hóa đơn
xuất nhập sản phẩm
thì cần xóa kèm theo
các chi tiết hóa đơn
xuất

update material set quantity_in_stock
= quantity_in_stock + @soluong
where ID= @id_vt

create trigger xoahd_xuat
on Deal_out_product
INSTEAD OF DELETE
as
DECLARE @iddeal int
Select @iddeal = ID from deleted
Delete from Show_Deal_out_product
where id_deal=@iddeal

create trigger xoahd_nhap_sp
on Deal_in_product
INSTEAD OF DELETE
as
DECLARE @iddeal int

21



Select @iddeal = ID from deleted

(đồng thời tăng số
lượng tồn bảng sản
phẩm)

Delete from Show_Deal_in_product
where id_deal=@iddeal

create trigger xoacthd_nhap_sp
on Show_Deal_in_product
INSTEAD OF DELETE
as
declare @id_vt int
declare @soluong bigint
select @soluong =quanlity from
deleted
select @id_vt =id_product from
deleted
update Product set quantity_in_stock
= quantity_in_stock- @soluong where
ID= @id_vt

create trigger xoacthd_xuat

22


on Show_Deal_out_product

INSTEAD OF DELETE
as
declare @id_vt int
declare @soluong bigint
select @soluong =quanlity from
deleted
select @id_vt =id_product from
deleted
update Product set quantity_in_stock
= quantity_in_stock + @soluong
where ID= @id_vt

-Khi xóa 1 loại sản
phẩm thì xóa tồn bộ
sản phẩm thuộc loại
sản phẩm đó

-Khi thêm 1 hóa đơn
Nhập phải tiến hành
tăng số lượng sản
23


phẩm ( hoặc vật tư)

create trigger xoahd_loaisp
on Categories_Product
INSTEAD OF DELETE
as
DECLARE @idproduct int

Select @idproduct = ID from deleted
Delete
from
Product
id_category=@idproduct

where

create trigger
them_chi_tiet_hoa_don_nhap_material
on Show_Deal_in_material
for insert

24


as
begin
declare @giasp bigint
declare @soluong bigint
declare @id_deal int
declare @id_vt int

select @soluong=quanlity from
inserted
select @id_deal =id_deal from
inserted
select @id_vt = id_material from
inserted
select @giasp=last_price from

inserted
if @soluong <=0
BEGIN
ROLLBACK TRAN
END
update material set quantity_in_stock
=quantity_in_stock+ @soluong where
@id_vt=ID
update Deal_in_material set
price_deal =
price_deal+@soluong*@giasp where
@id_deal =ID

end

-Khi thêm 1 hóa đơn
Xuất phải tiến hành
tăng số lượng sản
phẩm ( hoặc vật tư)

create trigger
them_chi_tiet_hoa_don_nhap_product

25


×