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

Thiết kế cơ sở dữ liệu thương mại Điện tử bán Đồng hồ

20 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 đề Thiết Kế Cơ Sở Dữ Liệu Thương Mại Điện Tử Bán Đồng Hồ
Tác giả Nguyễn Xuân Tiến
Người hướng dẫn GVHD: Lưu Nguyễn Kỳ Thư
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 20
Dung lượng 1,21 MB

Nội dung

Một đơn đặt hàng chỉ gởi cho một nhà cung cấp, trong đơn đặt hàng có thông tin mã đơn đặt hàng để phân biệt các đơn đặt hàng, ngày đặt hàng; một nhà cung cấp có thể được đặt hàng nhiều l

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN II

THIẾT KẾ CƠ SỞ DỮ LIỆU THƯƠNG MẠI ĐIỆN TỬ BÁN ĐỒNG HỒ GVHD: LƯU NGUYỄN KỲ THƯ

Họ và tên: Nguyễn Xuân

Tiến

MSSV: N19DCCN169

Lớp: D19CQCNPM02

TPHCM, tháng 6 năm 2023

Trang 2

Trang 3

Thành phố Hồ Chí Minh, ngày … tháng …

năm 2023

Giảng viên hướng dẫn

Trang 4

1 Mục tiêu : Thiết kế Cơ sở dữ liệu Thương mại điện tử bán đồng hồ

2 Khảo sát thực tế bài toán :

- Công ty bán nhiều đồng hồ, thông tin đồng hồ bao gồm mã đồng hồ để phân biệt các đồng hồ với nhau, tên đồng hồ, giá, số lượng tồn, mô tả , trạng thái, hình ảnh Một loại đồng hồ có nhiều đồng hồ và một đồng hồ có 1 loại đồng hồ

- Một đồng hồ thuộc 1 hãng đồng hồ, một hãng có nhiều đồng hồ

- Nhà cung cấp sẽ cung cấp nhiều đồng hồ thuộc các hãng khác nhau Nhà cung cấp sẽ

có thông tin: mã nhà cung cấp để phân biệt với nhà cung cấp khác, tên nhà cung cấp, địa chỉ, email, số điện thoại

- Công ty có nhiều nhân viên, mỗi nhân viên có thông tin bao gồm mã nhân viên để phân biệt các nhân viên, họ, tên, giới tính, ngày sinh, địa chỉ, số điện thoại, email

- Khi công ty muốn nhập hàng thì phải đặt hàng cho nhà cung cấp Một đơn đặt hàng chỉ gởi cho một nhà cung cấp, trong đơn đặt hàng có thông tin mã đơn đặt hàng để phân biệt các đơn đặt hàng, ngày đặt hàng; một nhà cung cấp có thể được đặt hàng nhiều lần

- Một đơn hàng có thể đặt nhiều đồng hồ khác nhau, một đồng hồ có thể được đặt hàng nhiều lần Một đồng hồ trong đơn đặt hàng phải chỉ rõ số lượng đặt, và đơn giá Ta phải ghi nhận nhân viên nào lập đơn đặt hàng cho nhà cung cấp Một đơn đặt hàng chỉ được lập bởi một nhân viên và một nhân viên lập được nhiều đơn đặt hàng

- Nhân viên chỉ nhập hàng trên đơn đặt hàng đã lập Phiếu nhập có thông tin mã phiếu nhập , ngày nhập; Một đơn đặt hàng chỉ có một phiếu nhập, nếu đơn hàng nhập còn thiếu thì xem như bỏ qua các đồng hồ nhập còn thiếu, muốn nhập lại thì ta sẽ lập đơn đặt hàng mới

- Một phiếu nhập có thể có nhiều đồng hồ khác nhau và một đồng hồ có thể được nhập

về nhiều lần với số lượng và giá khác nhau

- Khách hàng có thể đặt hàng online nhiều lần với nhiều phiếu đặt khác nhau; phiếu đặt

có thông tin: ngày đặt, họ tên người nhận, địa chỉ người nhận, số điện thoại người nhận, ngày giờ giao hàng Một phiếu đặt của khách hàng tại 1 thời điểm chỉ thuộc 1 trong các trạng thái sau: chờ duyệt, đã phân công nhân viên giao hàng, hoàn tất, đã hủy) và một phiếu đặt chỉ thuộc một khách hàng

Trang 5

- Một phiếu đặt của khách hàng có thể có nhiều đồng hồ khác nhau và một đồng hồ có thể được đặt nhiều lần trên nhiều phiếu đặt Phiếu đặt sẽ được duyệt bởi một nhân viên

- Khách hàng có thông tin: id, số CMND, họ, tên, giới tính, ngày sinh, địa chỉ, số điện thoại, email, mã số thuế

- Đồng hồ có thể thay đổi giá theo thời gian, ta phải ghi nhận nhân viên thiết lập giá mới cho đồng hồ

- Khi phân công nhân viên giao hàng, nhân viên duyệt đơn hàng sẽ in luôn hóa đơn Một phiếu đặt sẽ có một hóa đơn duy nhất tương ứng, thông tin hóa đơn gồm: số hóa đơn, ngày in hóa đơn, tổng tiền và mã số thuế

- Khách hàng có thể trả hàng với điều kiện là phải có hóa đơn và được trả nhiều lần Nhân viên sẽ lập phiếu trả ghi nhận các mặt hàng trả, số lượng trả Đồng hồ chỉ được trả trong vòng 1 tuần sau khi mua

- Các đồng hồ khi bán sẽ được bảo hành với thời gian (số tháng) tùy đồng hồ Mỗi đồng

hồ sẽ có 1 phiếu bảo hành riêng gồm số phiếu bảo hành, ngày bắt đầu, ngày kết thúc Khi bảo hành phải ghi rõ trạng thái đồng hồ trước và sau khi bảo hành và nhân viên nhận, nhân viên giao trả

- Trong năm, công ty sẽ có các đợt khuyến mãi (KM) giảm giá mặt hàng Mỗi đợt khuyến mãi có thông tin: mã đợt KM để phân biệt các đợt KM, lý do KM, ngày bắt đầu, ngày kết thúc Trong 1 đợt KM, mỗi đồng hồ có % giảm giá riêng Một đợt khuyến mãi được tạo bởi 1 nhân viên và 1 nhân viên có thể tạo nhiều đợt khuyến mãi khác nhau

- Tất cả các phiếu đã lập đều phải ghi nhận nhân viên lập các phiếu đó

3 Phân tích, thiết kế CSDL:

a/ Xác đinh các thực thể

- DONG_HO ( MADH , TEN_DH, GIA , SO_LUONG , MO_TA

,TRANG_THAI ,HINH_ANH )

- LOAI (MALOAI, TEN_LOAI )

- HANG ( MAHANG , TEN_HANG)

- NHA_CUNG_CAP ( MANCC, TEN_NCC , DIA_CHI , EMAIL , SĐT)

Trang 6

- NHAN_VIEN (MANV, HO, TEN , GIOI_TINH , NGAY_SINH , DIA_CHI ,SĐT,EMAIL)

- DON_DAT_HANG MADDH( , NGAY_DAT)

- PHIEU_NHAP MAPN( , NGAY_NHAP)

- KHACH_HANG IDKH( , CMND, HO ,TEN ,GIOI_TINH ,NGAY_SINH , DIA_CHI , SĐT ,EMAIL, MA_SO_THUE)

- PHIEU_DAT MAPD( , NGAY_DAT , HO_TEN_NGUOI_NHAN , SĐT ,

NGAY_GIAO)

- HOA_DON SOHD( , NGAY_IN , TONG_TIEN , MA_SO_THUE)

- PHIEU_TRA_HANG (MAPT , NGAY_TRA)

- PHIEU_BAO_HANH MAPBH( , NGAY_BAT_DAU , NGAY_KET_THUC)

- KHUYEN_MAI MAKM( , LY_DO , NGAY_BAT_DAU , NGAY_KET_THUC) b/ Mô hình ERD:

Hình 1.1: Mô hình ERD c/ Mô hình dữ liệu quan hệ từ ERD (đạt dạng chuẩn 3):

(Chú thích: MADH Khóa chính; MALOAI Khóa ngoại ; TEN_DH Khóa duy nhất)

1 DONG_HO ( MADH , TEN_DH, GIA , SO_LUONG_TON , MO_TA

,TRANG_THAI ,HINH_ANH , MALOAI , MAHANG )

2 LOAI (MALOAI, TEN_LOAI )

3 HANG ( MAHANG , TEN_HANG)

4 NHA_CUNG_CAP MANCC ( , TEN_NCC , DIA_CHI , EMAIL , SĐT)

Trang 7

5 NHAN_VIEN (MANV, HO, TEN , GIOI_TINH , NGAY_SINH , DIA_CHI ,SĐT,EMAIL)

6 DON_DAT_HANG MADDH( , NGAY_DAT , MANV , MANCC )

7 PHIEU_NHAP MAPN( , NGAY_NHAP , MADDH , MANV)

8 KHACH_HANG (IDKH , CMND, HO ,TEN ,GIOI_TINH ,NGAY_SINH , DIA_CHI , SĐT ,EMAIL, MA_SO_THUE)

9 PHIEU_DAT (MAPD , NGAY_DAT , HO_TEN_NGUOI_NHAN , SĐT ,

NGAY_GIAO , TRANG_THAI , IDKH , MANV_GIAO , MANV_DUYET)

10.HOA_DON SOHD , NGAY_IN , TONG_TIEN , MA_SO_THUE , ( MAPD ,

MANV )

11 PHIEU_TRA_HANG (MAPTH , NGAY_TRA ,SOHD , MANV)

12 PHIEU_BAO_HANH (MAPBH , NGAY_BAT_DAU , NGAY_KET_THUC ,

MADH)

13.KHUYEN_MAI MAKM( , LY_DO , NGAY_BAT_DAU , NGAY_KET_THUC ,

MANV)

14 CT_PHIEU_DAT( ID_PD , MAPD, MADH, SO_LUONG , DON_GIA )

15 CT_PHIEU_TRA( MAPT , ID_PD , SO_LUONG )

16 CT_KHUYEN_MAI( MAKM , MADH , KM_GIAM_GIA )

17 CT_PBH_NHAN( ID_NHAN_PBH , MAPBH , MANV , NGAY_NHAN , TT_NHAN )

18 CT_PBH_TRA( ID_NHAN_PBH , NGAY_TRA , MANV, TT_TRA )

19 CT_PHIEU_NHAP( MADH,MAPN , SO_LUONG , DON_GIA )

20 CT_DON_DAT_HANG( MADDH,MADH , SO_LUONG , DON_GIA )

21 CT_DONG_HO( MANV,MADH,NGAY_AP_DUNG, GIA )

22 CUNG_CAP( MADH,MANCC)

d/ Mô hình Diagram

Trang 8

Hình 1.2: Mô hình Diagram e/ Ràng buộc toàn vẹn:

- Ràng bu c toàn v n liên b : ộ ẹ ộ

R1: “Mỗỗi đỗồng hỗồ có m t mã riêng và khỗng trùng v i đỗồng hỗồ khác”ộ ớ

dh1,dh2 DONGHO:

dh1 <> dh2 -> dh1.MADH <> dh1.MADH

Cuỗối

R2: “Mỗỗi lo i đỗồng hỗồ có m t mã riêng và khỗng trùng v i lo i đỗồng hỗồ khác”ạ ộ ớ ạ

ldh1,ldh2 LOAI:

Trang 9

ldh1 <> ldh2 -> ldh1.MADH <> ldh1.MADH

Cuỗối

R3: “Mỗỗi hãng đỗồng hỗồ có m t mã riêng và khỗng trùng v i hãng đỗồng hỗồộ ớ khác”

hdh1,hdh2 HANG:

hdh1 <> hdh2 -> hdh1.MAHANG <> hdh1.MAHANG

Cuỗối

R4: “Mỗỗi nhà cung cấốp có m t mã riêng và khỗng trùng v i nhà cung cấốp khác”ộ ớ

ncc1,ncc2 NHACUNGCAP:

ncc1 <> ncc2 -> ncc1.MANCC <> ncc2.MANCC

Cuỗối

R5: “Mỗỗi Nhấn viên có m t mã riêng và khỗng trùng v i lo i nhấn viên khác”ộ ớ ạ

nv1,nv2 NHANVIEN:

nv1 <> nv2 -> nv1.MANV <> nv2.MANV

Cuỗối

Trang 10

R5 Thêm Xóa S a(MANV)ử

R6: “Mỗỗi đ n đ t hàng có m t mã riêng và khỗng trùng v i đ n đ t hàngơ ặ ộ ớ ơ ặ khác”

ddh1,ddh2 DONDATHANG:

ddh1 <> ddh2 -> ddh1.MADDH <> ddh2.MADDH

Cuỗối

R7: “Mỗỗi Phiêốu đ t có m t mã riêng, khỗng trùng v i phiêốu đ t khác”ặ ộ ớ ặ pd1,pd2 PHIEUDAT:

pd1 = pd2 -> pd1.MAPD =pd2.MAPD

Cuỗối

R8: “Mỗỗi Phiêốu nh p có m t mã riêng, khỗng trùng v i phiêốu nh p khác”ậ ộ ớ ậ pn1,pn2 PHIEUNHAP:

pn1 = pn2 -> pn1.MAPN =pn2.MAPN

Cuỗối

Trang 11

R9: “Mỗỗi khách hàng có m t ID riêng, khỗng trùng v i ID khách hàng khác”ộ ớ

“Mỗỗi khách hàng có m t CMND riêng, khỗng trùng v i CMND khách hàngộ ớ khác”

“Mỗỗi khách hàng có m t mã sỗố thuêố riêng, khỗng trùng v i mã sỗố thuêố kháchộ ớ hàng khác”

kh1,kh2 KHACHHANG:

kh1 = kh2 -> kh1.IDKH =pn2.IDKH

Cuỗối

kh1,kh2 KHACHHANG:

kh1 = kh2 -> kh1.CMND =pn2.CMND

Cuỗối

kh1,kh2 KHACHHANG:

kh1 = kh2 -> kh1.MA_SO_THUE =pn2.MA_SO_THUE

Cuỗối

R10: “Mỗỗi hóa đ n có m t mã riêng, khỗng trùng v i hóa đ n khác”ơ ộ ớ ơ

“Mỗỗi hóa đ n có m t mã sỗố thuêố riêng, khỗng trùng v i hóa đ n ơ ộ ớ ơ

khác”

Trang 12

hd1,hd2 HOADON:

hd1 = hd2 -> hd1.MAHD =hd2.MAHD

Cuỗối

hd1,hd2 HOADON:

hd1 = hd2 -> hd1 MA_SO_THUE =hd2 MA_SO_THUE

Cuỗối

R11: “Mỗỗi phiêốu tr có m t mã riêng, khỗng trùng v i phiêốu tr khác”ả ộ ớ ả pt1,pt2 PHIEUTRA:

pt1 = pt2 -> pt1.MAPT =pt2.MAPT

Cuỗối

R12: “Mỗỗi phiêốu b o hành có m t mã riêng, khỗng trùng v i phiêốu b o hànhả ộ ớ ả khác”

pbh1,pbh2 PHIEUBAOHANH:

pbh1 = pbh2 -> pbh1.MAPBH =pbh2.MAPBH

Cuỗối

Trang 13

R12 Thêm Xóa S a(MABH)ử

R13: “Mỗỗi đ t khuyêốn mãi có m t mã riêng, khỗng trùng v i đ tợ ộ ớ ợ

khuyêốn mãi khác”

dkm1,dkm2 KHUYENMAI:

dkm1 = dkm2 -> dkm1.MAKM =pbh2.MAKM

Cuỗối

- Ràng bu c toàn v n vêề miêền giá tr : ộ ẹ ị

R14: “Trong l c đỗồ quan h NHANVIEN,có NĂM hi n t i – YEAR(NGAYSINH) >ượ ệ ệ ạ 17”

nv NHANVIEN:

YEAR(Getdate())- YEAR(nv.NGAYSINH) > 17

cuỗối

R15: “Trong l c đỗồ quan h KHACHHANG có NGAYSINH < ngày hi n t i”ượ ệ ệ ạ

kh KHACHHANG:

kh.NGAYSINH < ngày hi n t iệ ạ

Trang 14

Cuỗối

R16: “Trong l c đỗồ quan h DONDATHANG có NGAYDAT < ngày hi n t i”ượ ệ ệ ạ ddh DONDATHANG:

ddh.NGAYDAT < ngày hi n t iệ ạ

Cuỗối

R17: “ Trong l c đỗồ quan h CTPHIEUNHAP có giá > 0”ượ ệ

ctpn CTPHIEUNHAP:

ctpn.GIA > 0

Cuỗối

R18: “Trong l c đỗồ quan h CTPHIEUTRA có sỗố lượ ệ ượng tr > 0”ả

ctpn CTPHIEUTRA:

ctpt.SLT > 0

Cuỗối

Trang 15

R19: “Trong l c đỗồ quan h DONGHO có giá đỗồng hỗồ >= 0 ”ượ ệ

dh DONGHO:

dh.GIA >= 0

Cuỗối

R20: “Trong l c đỗồ quan h PHIEUNHAP có NGAYNHAP < ngày hi n t i”ượ ệ ệ ạ

pn PHIEUNHAP:

pn.NGAYNHAP < ngày hi n t iệ ạ

Cuỗối

R21: “Trong l c đỗồ quan h PHIEUDAT có NGAYDAT < ngày hi n t i”ượ ệ ệ ạ

pd PHIEUDAT:

pd.NGAYDAT < ngày hi n t iệ ạ

Cuỗối

- Ràng bu c toàn v n liên thu c tnh: ộ ẹ ộ

R22: “Trong l c đỗồ quan h DOTKHUYENMAI có ngày bắốt đấồu < ngày kêốt thúc”ượ ệ

Trang 16

dkm DOTKHUYENMAI:

dkm.NGAYBD < dkm.NGAYKT

cuỗối

NGAYKT)

R23: “Trong l c đỗồ quan h PHIEUBAOHANH có ngày bắốt đấồu < ngày kêốt thúc”ượ ệ pbh PHIEUBH:

pbh.NGAYBD < pbh.NGAYKT

cuỗối

NGAYKT)

R24: “Trong l c đỗồ quan h PHIEUDAT có ngày bắốt đấồu < ngày kêốt thúc”ượ ệ

pd PHIEDAT:

pd.NGAYBD < pd.NGAYKT

cuỗối

NGAYKT)

R25: “Trong l c đỗồ quan h DONGHO, mỗỗi đỗồng hỗồ ch có 1 mã lo i, 1 mã hãng”ượ ệ ỉ ạ

Trang 17

∀ dh ∈ DONGHO, ml LOAI, mh HANG / dh.MaLoai = ml.MaLoai AND ∃ ∈ ∃ ∈ dh.MaHang = mh.MaHang

Cuỗối ∀

(MaLoai,MaHang)

R26: “Trong l c đỗồ quan h DONDATHANG, mỗỗi đ n do 1 nhấn viên l p”ượ ệ ơ ậ

∀ ddh ∈ DONDH , ∃ nv NhanVien / ddh.MaNV = nv.MaNV∈

Cuỗối ∀

R27: “Trong l c đỗồ quan h DONDATHANG, mỗỗi đ n ch g i đêốn 1 nhà cung cấốp”ượ ệ ơ ỉ ử

∀ ddh ∈ DONDATHANG, ncc NHACC ∃ ∈

/ ddh.MANCC = ncc.MANCC

Cuỗối ∀

R28: “Trong l c đỗồ quan h PHIEUNHAP, mỗỗi phiêốu nh p ch do 1 nhấn viên l p”ượ ệ ậ ỉ ậ

∀ pn ∈ PHIEUNHAP, nv NHANVIEN / pn.MANV = nv.MANV∃ ∈

Cuỗối ∀

Trang 18

PHIEUNHAP + - +(MANV)

R29: “Trong l c đỗồ quan h PHIEUNHAP, mỗỗi phiêốu nh p có m t mã đ n hàng”ượ ệ ậ ộ ơ

∀ pn ∈ PHIEUNHAP, mdh DONDATHANG ∃ ∈

Cuỗối ∀

R30: “Trong l c đỗồ quan h PHIEUDAT, mỗỗi phiêốu đ t có m t mã đ n hàng”ượ ệ ặ ộ ơ

∀ pd ∈ PHIEUDAT, mdh DONDATHANG ∃ ∈

Cuỗối ∀

R31: “Trong l c đỗồ quan h PHIEUBAOHANH, mỗỗi phiêốu b o hành có m t mãượ ệ ả ộ

đ n hàng”ơ

∀ pbh ∈ PHIEUBAOHANH, mdh DONDATHANG ∃ ∈

Cuỗối ∀

Trang 19

R31 Thêm Xóa S aử

R32: “Trong l c đỗồ quan h PHIEUTRA, mỗỗi phiêốu tr do 1 nhấn viên l p”ượ ệ ả ậ

∀ pt ∈ PHIEUTRA , nv NhanVien / pt.MaNV = nv.MaNV∃ ∈

Cuỗối ∀

R33: “Trong l c đỗồ quan h HOADON, mỗỗi hóa đ n do 1 nhấn viên l p”ượ ệ ơ ậ

∀ hd ∈ HOADON , ∃ nv NhanVien / hd.MaNV = nv.MaNV∈

Cuỗối ∀

R34: “Trong l c đỗồ quan h DOTKHUYENMAI, mỗỗi đ t khuyêốn mãi do 1 nhấnượ ệ ợ viên l p”ậ

∀ dkm ∈ DOTKHUYENMAI, ∃nv∈NhanVien/dkm.MANV = nv.MANV

Cuỗối ∀

f/ Ràng buộc toàn vẹn:

a/ Khi mở đợt khuyến mãi mới, ta sẽ tự động thiết lập mức khuyến mãi cho tất các đồng hồ):

Trang 20

CREATE PROC SP_TU_DONG_KHUYEN_MAI @MAKM ( INT @PT_KM FLOAT )

AS

BEGIN

INSERT INTO CT_KHUYENMAI MAKM MADH KM_GIAMGIA ( , , )

SELECT MAKM @MAKM = , MADH KM_GIAMGIA , = @PT_KM

FROM DONG_HO AS DH

WHERE ( DH MADH @MAKM + ) NOT IN ( SELECT MADH MAKM + FROM CT_KHUYENMAI )

END

b/ Liệt kê các đơn đặt hàng chưa nhập hàng trong khoảng thời gian (@tungay,

@denngay) Các đơn hàng in theo thứ tự thời gian đặt tăng dần Kết xuất:

Mã số ĐĐH Ngày đặt Họ tên NV lập phiếu Nhà cung cấp Tổng trị giá

CREATE PROC SP_LK_DON_HANG_CHUA_NHAP @TUNGAY ( CHAR ( 10 ), @DENNGAY CHAR ( 10 ) )

AS

BEGIN

SET DATEFORMAT DMY

SELECT

DDH MADDH DDH , NGAYDAT ,

HOTEN NV HO = + ' ' NV TEN NCC TENNCC , ,

TONG = SUM( CTDDH SOLUONG CTDDH * DONGIA )

FROM

( SELECT MANCC , TENNCC FROM NHACUNGCAP NCC ) ,

( SELECT MADDH , SOLUONG DONGIA , FROM CT_DONDATHANG ) CTDDH ,

( SELECT MANV , HO TEN , FROM NHANVIEN ) NV ,

( SELECT MADDH , NGAYDAT MANV MANCC , ,

FROM DONDATHANG DDH

WHERE NGAYDAT BETWEEN @TUNGAY AND @DENNGAY

AND DDH MADDH NOT IN ( SELECT PN MADDH FROM PHIEUNHAP PN DDH ))

WHERE DDH MANV NV = MANV AND DDH MANCC = NCC MANCC AND DDH MADDH CTDDH MADDH =

GROUP BY DDH MADDH DDH , NGAYDAT NV , HO + ' ' + NV TEN , NCC TENNCC

ORDER BY DDH NGAYDAT ASC

END

Ngày đăng: 15/02/2025, 22:05

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

TÀI LIỆU LIÊN QUAN