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

(Tiểu luận) báo cáo bài tập lớn môn hệ quản trị cơ sở dữ liệu – it10 chủ đề 04 quản lý kinh doanh cửa hàng thuốc

24 14 0

Đ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ý Kinh Doanh Cửa Hàng Thuốc
Tác giả Nguyễn Văn Chiến, Đào Thái Duy, Nguyễn Đình Duy, Nguyễn Viết Duy, Nguyễn Thị Thúy Hằng
Người hướng dẫn ThS. Trịnh Thị Xuân
Trường học Trường Đại Học Mở Hà Nội
Chuyên ngành Hệ Quản Trị Cơ Sở Dữ Liệu
Thể loại Báo cáo
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 24
Dung lượng 710,66 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Yêu cầu chung về quyển báo cáo và chương trình *Toàn bộ chương trình và file báo cáo BTL được lưu trong thư mục với tên theo nguyên tắc sau: Nguyên tắc: SQLSERVER-BTL-- Ví dụ: SQLSERVER

Trang 1

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

TRUNG TÂM ĐÀO TẠO ELEARNING

-BÁO CÁO BÀI TẬP LỚN

MÔN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – IT10

CHỦ ĐỀ 04: QUẢN LÝ KINH DOANH CỬA HÀNG THUỐC

SVTH:

- Nguyễn Văn Chiến

- Đào Thái Duy

Trang 2

MỤC LỤC

Trang

I PHÁT BIỂU BÀI TOÁN. 1

II MÔ HÌNH CSDL QUAN HỆ. 1

III TẠO CƠ SỞ DỮ LIỆU. 3

IV XÂY DỰNG CÁC VIEW CHO CSDL. 8

V XÂY DỰNG CÁC PROCEDURE CHO CSDL. 12

VI XÂY DỰNG CÁC TRIGGER C. 15

VII PHÂN QUYỀN VÀ BẢO MẬT CSDL. 18

VIII PHÂN TÁN CƠ SỞ DỮ LIỆU. 19

Trang 3

CHỦ ĐỀ 04

I Đề bài.

- Xây dựng chương trình quản lý kinh doanh cửa hàng thuốc

- Các bảng tối thiểu cần có: tblThuoc(Thuốc), tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblHoaDon(Hoá đơn), tblCTHoaDon(Chi tiết hoá đơn),….

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- Yêu cầu cần thực hiện:

1 Xác định các bảng và Tạo CSDL của bài toán (1 điểm): Thực hiện câu lệnh tạo

CSDL, tạo bảng và chèn dữ liệu cho bảng, mỗi bảng tối thiểu 5 bản ghi

2 Tạo các view chứa và khai thác CSDL (2 điểm): Tối thiểu 10 view (gồm: Lấy thông

tin một bảng, lấy thông tin nhiều bảng, tính toán gom nhóm, …)

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): Tối thiểu 5 thủ tục (các thủ tục có

truyền tham số)

4 Tạo và vận dụng các trigger (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): Tạo tối thiểu 2 người dùng và phân

quyền sử dụng cho Bảng, View, Thủ tục đã tạo ở trên

6 Phân tán (1 điểm): lựa chọn một số bảng bất kỳ, thực hiện phân tán ngang và dọc,

thực hiện các yêu cầu khai thác trên dữ liệu phân tán

II Yêu cầu chung về quyển báo cáo và chương trình

*Toàn bộ chương trình và file báo cáo BTL được lưu trong thư mục với tên theo nguyên tắc sau:

Nguyên tắc: SQLSERVER-BTL-<thứ tự đề>-<Họ tên sinh viên>

Ví dụ: SQLSERVER -BTL-01-NguyenVanHung

*Chương trình: Tạo file Query ghi nhận toàn bộ các câu lệnh thực hiện xử lý với CSDL

của bài toám gồm: Tạo cơ sở dữ liệu, tạo và chỉnh sửa các bảng, tạo và kiểm tra các View, tạo và thực thi các thủ tục Proc, tạo và thực thi các Trigger, tạo người dùng và phân quyền người dùng, ….

*Cấu trúc quyển báo cáo:

1 Trang bìa: Tên đề tài, tên nhóm (gồm cả họ tên các thành viên của nhóm), tên lớp.

3 Giới thiệu đề tài.

4 Phát biểu bài toán

5 Mô hình CSDL và tạo CSDL – tạo và chỉnh sửa các bảng

6 Các đối tượng CSDL gồm: View, Proc, Trigger

7 Phân quyền và bảo mật CSDL

9 Kết luận, hướng phát triển tiếp theo

10 Tài liệu tham khảo

Trang 4

I PHÁT BIỂU BÀI TOÁN.

Quản lý kinh doanh của hàng thuốc gồm các thông tin sau:

Mỗi loại thuốc phải có mã thuốc, tên thuốc, số lượng, đơn vị tính (viên, vỉ,…), giá và

Các giao dịch với khách hàng sẽ được lập hoá đơn Hoá đơn sẽ bao gồm mã hoá đơn, ngày đặt hàng, mã khách hàng, mã nhân viên lập hoá đơn và tổng tiền Trong mỗi hoá đơn sẽ bao gồm chi tiết hoá đơn như mã chi tiết hoá đơn, mã hoá đơn, mã thuốc, số lượng, thành tiền của từng loại thuốc và tổng tiền Số lượng thuốc sẽ được cập nhật lại sau khi khách hàng mua thuốc.

Nhà thuốc sẽ quản lý nhân viên bằng mã nhân viên, tên nhân viên, địa chỉ, số điện thoại, ngày sinh và giới tính Các nhân viên sẽ được giới hạn độ tuổi làm việc từ 18 tuổi đến 65 tuổi và không thể chỉnh sửa mã nhân viên khi cập nhật lại thông tin nhân viên Chương trình sẽ được phân quyền để phù hợp cho mục đích sử dụng mỗi người.

II MÔ HÌNH CSDL QUAN HỆ.

Ta có CSDL của bài toàn như sau:

1 tblNhaSanXuat (MaNSX, TenNSX, DiaChi, SDT).

2 tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia, MaNSX)

3 tblKhachHang (MaKH, TenKH, DiaChi, SDT).

4 tblNhanVien (MaNV, TenNV, DiaChi, SDT, NgaySinh, GioiTinh).

5 tblHoaDon (MaHD, NgayDatHang, MaKH, MaNV, TongTien).

6 tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien,

Trang 6

Ngày đặt hàng

2

Trang 7

2 MaHD Nvarchar(50) FK, tham chiếu sang Mã hóa đơn

bảng tblHoaDon

3 MaThuoc Nvarchar(50) FK, tham chiếu sang Mã thuốc

bảng tblThuoc

III TẠO CƠ SỞ DỮ LIỆU.

- Tạo bảng nhà sản xuất CREATE TABLE tblNhaSanXuat (

MaNSX Nvarchar ( 50 ) not null,

TenNSX Nvarchar ( 255 ) not null,

DiaChi Nvarchar ( 255 ) null,

SDT varchar ( 10 ) null,

PRIMARY KEY ( MaNSX ),

);

- Tạo bảng thuốc

CREATE TABLE tblThuoc (

MaThuoc Nvarchar(50) not null,

TenThuoc Nvarchar(255) not null,

SoLuong int not null,

DVT Nvarchar(50) null,

DonGia Float not null,

MaNSX Nvarchar(50) not null

PRIMARY KEY (MaThuoc),

FOREIGN KEY (MaNSX) REFERENCES tblNhaSanXuat(MaNSX),

Trang 8

Bảng khách hàng

3

Trang 9

MaKH Nvarchar(50) not null,

TenKH Nvarchar(255) not null,

DiaChi Nvarchar(255) null,

SDT varchar(10) null,

PRIMARY KEY (MaKH)

);

Bảng nhân viên

CREATE TABLE tblNhanVien (

MaNV Nvarchar(50) not null,

TenNV Nvarchar(255) not null,

DiaChi Nvarchar(255) null,

SDT varchar(10) null,

NgaySinh DateTime null,

GioiTinh Nvarchar( ) null,

PRIMARY KEY (MaNV),

);

Bảng hóa don

CREATE TABLE tblHoaDon (

MaHD Nvarchar(50) not null,

NgayDatHang DateTime not null,

MaKH Nvarchar(50) not null,

MaNV Nvarchar(50) not null,

TongTien Float not null,

PRIMARY KEY (MaHD),

FOREIGN KEY ( MaKH ) REFERENCES tblKhachHang ( MaKH ),

FOREIGN KEY ( MaNV ) REFERENCES tblNhanVien ( MaNV )

);

- Bảng chi tiết hóa don CREATE TABLE tblCTHoaDon (

MaCTHD Nvarchar ( 50 ) not null,

MaHD Nvarchar ( 50 ) not null,

MaThuoc Nvarchar(50) not

null, SoLuong int not

null, ThanhTien Float not

null, TongThanhTien Float

not null,PRIMARY KEY

(MaCTHD),

FOREIGN KEY ( MaHD ) REFERENCES tblHoaDon ( MaHD ),

FOREIGN KEY ( MaThuoc ) REFERENCES tblThuoc ( MaThuoc )

);

- Chèn dữ liệu cho bảng.

Chèn dữ liệu cho bảng tblNhaSanXuat

INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT)

VALUES ('NSX01', N'Công ty cổ phần dược phẩm OPC',N'1017 - Hồng Bàng, Phường 12, Quận6, Tp.HCM',02837517111);

INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT)

VALUES ('NSX02', N'Công ty CP hoá dược phẩm Mekophar',N'297/5 Lý Thường Kiệt, Quận 11,Tp.HCM, Việt Nam.',02838650258);

INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT)

VALUES ('NSX03', N'Công ty CP hoá dược phẩm Mekophar',N'297/5 Lý Thường Kiệt, Quận 11,Tp.HCM, Việt Nam.',02838650258);

INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT)

VALUES ('NSX04', N'Công ty cổ phần dược phẩm TW25',N'448B Nguyễn Tất Thành,

P 18, Quận4, TP.HCM',02839404351);

4

Trang 10

VALUES ('NSX05', N'Công ty Cổ Phần Sanofi Việt Nam',N'15/6C, Đặng Văn Bi,

Q Thủ ĐứcTP.HCM',0287109424);

Chèn dữ liệu cho bảng tblThuoc

INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX)VALUES ('T001', N'Thuốc Atorvastatin 20Mg Trị Tăng Cholesterol Máu',

'10', N'Vỉ', '10000','NSX04');

INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX)VALUES ('T002', N'Thuốc Kháng Sinh Tetracyclin 500Mg Vidipha Điều Trị Nhiễm Khuẩn','10', N'Hộp', '48000','NSX04');

INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX)VALUES ('T003', N'Siro Ho Astex 90Ml Opc Giảm Ho Viêm Họng, Viêm Phế Quản', '10', N'Chai', '38000','NSX01');

INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX)VALUES ('T004', N'Paracetamol 500mg Vidipha', '15', N'Hộp',

'19000','NSX02');

INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX)VALUES ('T005', N'Viên uống An thần dễ ngủ Mimosa hộp 50 viên',

'15', N'Hộp', '70900','NSX01');

Chèn dữ liệu cho bảng tblKhachHang

INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT)

VALUES ('KH001', N'Nguyễn Văn A', N'Số 1, đường Nguyễn Thị Minh Khai, TP.HCM ', 0983456780);

INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT)

VALUES ( 'KH002' , N'Nguyễn Văn B' , N'Số 8, đường Nguyễn Văn Bi, TP.HCM ' , 0986780320 );INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT)

5

Trang 11

N'Nguyễn Văn Sơn' N'Số 13B, đường Nguyễn Ðình Chiểu,TP.HCM ', 0945675678);

INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT)

VALUES ('KH004', N'Nguyễn Thị Lan', N'Số 687, đường Nguyễn Ái Quốc, TP.HCM ', 0935873478);

INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT)

VALUES ('KH005', N'Ðặng Thị Thu Hà', N'Số 11/2B, đường Sơn Ðông,

TP.HCM ', 0945675678);

INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT)

VALUES ('KH006', N'Ngô Diệt Phàm', N'Số 11/2B, đường Sơn Tây, Hà Nội ','');

Chèn dữ liệu cho bảng tblNhanVien

INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh)VALUES ('NV001', N'Nguyễn Văn C', N'TP.HCM', 0983455678,'2000-04-13',

'Nam');

INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh)VALUES ('NV002',N'Nguyễn Văn D', N'TP.HCM', 0867980320,'2000-05-13','Nam');INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh)VALUES ('NV003',N'Nguyễn Văn Hà', N'TP.HCM', 0945675438,'2000-06-13','Nam');INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh)VALUES ('NV004',N'Ngô Minh Chí', N'TP.HCM', 0939654378,'2001-04-13',N'Nữ');INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh)

VALUES ( 'NV005' , N'Nguyễn Thị Linh' , N'TP.HCM' , 0920965678 , '1999-04-13' , N'Nữ' );

INSERT INTO tblNhanVien ( MaNV , TenNV , DiaChi , SDT , NgaySinh , GioiTinh )

VALUES ( 'NV006' , N'Đặng Thị Thanh' , N'Hà Nội' , '' , '1997-05-13' , N'Nữ' );

INSERT INTO tblNhanVien ( MaNV , TenNV , DiaChi , SDT , NgaySinh , GioiTinh )

VALUES ( 'NV007' , N'Đào Bá Phương' , N'Hà Nội' , '' , '2000-10-13' , N'Nữ' );

6

Trang 12

Chèn dữ liệu cho bảng tblHoaDon

INSERT INTO tblHoaDon (MaHD, NgayDatHang, MaKH, TongTien,MaNV)

Chèn dữ liệu cho bảng tblCTHoaDon

INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien,

TongThanhTien) VALUES ('CTHD001','HD001','T001', 3, 150000, 150000);INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien,

TongThanhTien) VALUES ('CTHD002','HD002','T002', 3, 150000, 150000);INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien,

TongThanhTien) VALUES ('CTHD003','HD002','T003', 4, 150000, 250000);

INSERT INTO tblCTHoaDon ( MaCTHD , MaHD , MaThuoc , SoLuong , ThanhTien , TongThanhTien )

7

Trang 13

INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien,

TongThanhTien) VALUES ('CTHD005','HD004','T004', 2, 150000, 350000);

- Sơ đồ quan hệ giữa các bảng

IV XÂY DỰNG CÁC VIEW CHO CSDL.

- Tạo view:

- Tạo view ds khách hàng Create VIEW DSKhachHang_VIEW AS SELECT TenKH,

DiaChi, SDT FROM tblKhachHang;

8

Trang 14

- Tạo view ds nhân viên

Create VIEW NhanVien_VIEW AS

Create VIEW NhanVien_VIEW AS

SELECT TenNV, GioiTinh,

DiaChi, SDT FROM tblNhanVien;

Select *from NhanVien_VIEW

Tạo view ds nhân viên có giới tính là Nam

Create VIEW NhanVienNam_VIEW AS

SELECT MaNV, TenNV, GioiTinh

FROM tblNhanVien

WHERE GioiTinh = 'Nam' ;

select *from NhanVienNam_VIEW

9

Trang 15

Tạo view ds nhân viên có giới tính là Nữ

Create VIEW SanPham_VIEW AS

SELECT MaThuoc, TenThuoc, MaNSX

FROM tblThuoc

WHERE MaNSX= N'NSX04' ;

select *from SanPham_VIEW

Tạo view ds nhân viên có địa chỉ là TP.HCM

Create VIEW AdNhanVien_VIEW AS

SELECT TenNV , DiaChi

FROM tblNhanVien

WHERE DiaChi like '%HCM%'

select *from AdNhanVien_VIEW

Tạo view ds hóa đơn có số tiền trên 200000

Create VIEW Total_VIEW AS

SELECT MaHD, NgayDatHang, MaKH, TongTien

FROM tblHoaDon

WHERE TongTien >= 200000 ;

select *from Total_VIEW

1 0

Trang 16

Tạo View tính tổng số hóa đơn đã lập của từng Nhân viên

CREATE VIEW SumHDByNV_VIEW

AS

SELECT MaNV,SUMHD = Count(MaHD)

FROM tblHoaDon

GROUP BY MaNV

select *from SumHDByNV_VIEW

Tạo View tính tổng số hóa đơn đã lập của nhân viên trong ngày 24/08/2022

CREATE VIEW SUMHDDAY_VIEW

AS

SELECT MaNV, NgayDatHang ,SUMHD = Count(MaHD)

FROM tblHoaDon

WHERE NgayDatHang = '2022-08-24'

GROUP BY MaNV , NgayDatHang

select *from SUMHDDAY_VIEW

- Tạo ds nhân viên không có số điện thoại Create VIEW

PhoneNullNhanVien_VIEW AS SELECT TenNV, DiaChi

1 1

Trang 17

WHERE SDT= ''

select *from PhoneNullNhanVien_VIEW

- Tạo view tổng tiền cửa hàng kiếm được Create VIEW

TongTienCuaHangKiemDuoc_VIEW AS

SELECT SUM(TongTien) As

Total FROM tblHoaDon

select *from TongTienCuaHangKiemDuoc_VIEW

- Tạo view tuổi trung bình của NV Create VIEW TuoiTBCuaNV_VIEW

AS

select avg(datediff(year,NgaySinh , GETDATE()))

as age from tblNhanVien

select *from TuoiTBCuaNV_VIEW

V XÂY DỰNG CÁC PROCEDURE CHO CSDL.

- Tạo các procedure:

Tạo Proc thêm nhân viên vào bảng tblNhanVien

1 2

Trang 18

Select *from tblNhanVien

Tạo Proc update nhân viên

Create proc sp_SuaNhanVien

Where MaNV = @manv

print N'Đã cập nhật thành công thông tin của nhân viên: '

Trang 19

exec sp_SuaNhanVien 'NV006',N'Đặng Thị Thanh update', N'Hà

Nội','','2000-05-13',N'Nữ';

select *from tblNhanVien

Tạo Proc Xóa nhân viên khỏi bảng

tblNhanVien CREATE PROC

sp_NhanVienDelete@manv Nvarchar(50)

AS

DELETE tblNhanVien Where MaNV=@manv

exec sp_NhanVienDelete NV008

Select *from tblNhanVien

Tạo Proc đếm số hóa đơn có tổng giá tiền => 300000

CREATE PROC sp_GetHoaDon(@tongtien FLOAT = 300000, @HoaDon_COUNT INT OUTPUT)AS

Trang 20

- Tạo Proc để list ra những hóa đơn nào mà nhân viên đó làm CREATE PROC

sp_HDNhanVienDaLam(@manv NVARCHAR(50))

set tblThuoc.SoLuong = tblThuoc.SoLuong

-inserted.SoLuong from tblThuoc inner join inserted

on tblThuoc.MaThuoc = inserted.MaThuoc

Select * from tblThuoc

INSERT INTO tblCTHoaDon ( MaCTHD , MaHD , MaThuoc , SoLuong , ThanhTien , TongThanhTien )VALUES ('CTHD006','HD004','T001', 7, 10000, 70000);

Select * from tblCTHoaDon

Select * from tblThuoc

1 5

Trang 21

Tạo trigger cập nhật dữ liệu trong bảng Thuoc

create trigger tg_CancelBill

on tblCTHoaDon

for delete

as

Update tblThuoc

set tblThuoc.SoLuong = tblThuoc.SoLuong +

deleted.SoLuong from tblThuoc inner join deleted

on tblThuoc.MaThuoc = deleted.MaThuoc

Select * from tblThuoc

Select * from tblCTHoaDon

Delete From tblCTHoaDon where MaCTHD = 'CTHD006'

Select * from tblCTHoaDon

Select * from tblThuoc

1 6

Trang 22

Tạo Insert trigger nhằm đảm bảo khi nhập một khách bắt buộc phải có địa chỉ và sdt để liên lạc

create trigger tg_InserCustomer

INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT)

VALUES ('KH007', N'Ngô Thị Bắp', N'','');

- Tạo Insert trigger ràng buộc không cho xóa nhân viên

create trigger tg_EditMaNV

Trang 23

Update tblNhanVien set MaNV = '1' Where MaNV = 'NV001'

create trigger tg_ValidateAge

on tblNhanVien

for insert

as

declare @tuoi int;

select @tuoi = DateDiff(Year, NgaySinh, GetDate() )+1 from inserted

if @tuoi <18 or @tuoi>65

begin

print N'Tuổi của nhân viên không hợp lệ trong khoảng 18<=

tuổi <=65'; rollback tran

end

INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh)VALUES ('NV008',N'Đào Bá Ngọc', N'Hà Nội','','2010-10-13',N'Nữ');

VII PHÂN QUYỀN VÀ BẢO MẬT CSDL.

- Tạo Account và phân quyền

- Tạo 2 login không có quyền

CREATE LOGIN duy WITH PASSWORD = '123456'

GO

CREATE LOGIN duy1 WITH PASSWORD = '123456'

GO

1 8

Trang 24

Tạo Login có quyền cao nhất

Grant select on tblThuoc to duyDB

Grant select on tblHoaDon to duyDB

CREATE USER duytest FOR LOGIN duy1

Grant update on AdNhanVien_VIEW to duytest

VIII PHÂN TÁN CƠ SỞ DỮ LIỆU.

Quản lý kinh doanh của hàng thuốc gồm các thông tin sau:

1 9

Ngày đăng: 28/09/2023, 20:27

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w