Nguồn dữ liệu: Mã của mỗi mặt hàng sẽ do nhân viên phụ ̣ trách nhập xuất nhập vào.Điều kiện: cột này không được phép để trống và không được phép trùng lặp do là primary key.. Điều kiện:
Trang 1TRƯỜNG ĐẠI HỌC HÒA BÌNH
KHOA CÔNG NGHỆ THÔNG TIN – ĐIỆN TỬ VIỄN THÔNG
TÀI LIỆU PHÂN TÍCH THIẾT
KẾ CƠ SỞ DỮ LIỆU
MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO
Giảng viên hướng dẫn: ThS Vũ Thành Trung
Sinh viên thực hiện: Bùi Đức Trung
Mã sinh viên: 518CNT025
Lớp: 518CNT
Trường : Đại Học Hòa Bình
Hà Nội, 27 tháng 11 năm 2021
Trang 2Mục lục
Mụ ̣c đích dự án 2
Phạm vi dự án 2
Bối cảnh của dự án 2
Bảng mathang 3
Bảng giohang 5
Bảng theloai 6
Bảng nhasanxuat 6
Bảng hoadon 7
Bảng khachhang 8
Bảng nhanvien 10
Bảng maphieu 11
Bảng nhapxuat 11
Bảng chitietnhapxuat 13
Bảng chitetmathang 14
Bảng chitethoadon 16
Bảng thumua 17
Bảng danhgia 18
Trang 31 GIỚI THIỆU DỰ ÁN Mục đích dự án
Dự án trang web bán các loại mặt hàng điện thoại, máy tính, Laptop, phụ ̣ kiện điệntử, Tên trang web Shopdientu Trang web được tạo ra chủ yếu để phụ ̣c vụ ̣ khách hàng trực tuyến trong thời điểm dịch bệnh, giúp khách hàng dễ tiếp cận đến shop Trang web có thể đáp ứng được các nhu cầu cơ bản của khách hàng như xem chi tiết mặt hàng, đặt mua, giỏ hàng, bình luận, nhận xét,
Bối cảnh của dự án
Dự án này được thực hiện dưới hình thức bài tập cuối kì của cá nhân nên mức độ phức tạpkhông cao, không triển khai nhiều tính năng và công việc kiểm thử cũng hết sức tối giản Việcđặc tả trong tài liệu này được viết dưới dạng tiêu chuẩn đơn giản hóa
Chúng tôi thiết kế và xây dựng cơ sở dữ liệu dựa trên ý tưởng về một trang web quản lý bánhàng cho Shop Trang web cho phép phụ ̣c vụ ̣ nhu cơ bản của khách hàng, ngoài ra chủ shop
có thể kiểm tra các thông tin của shop khi được cập nhật
2 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU CỦA DỰ ÁN
Hệ thống cơ sở dữ liệu của dự án gồm có 15 bảng, được trình bày qua hình sau:
Trang 4Bảng mathang
Bảng này chứa thông tin về các mặt hàng của cửa hàng Bảng gồm có 8 cột như sau:
MaMatHang: Cột này chứa mã của các mặt hàng
Primary key: có
Foreign key: không
Kiểu dữ liệu: int(10) Mã của các mặt hàng sẽ khác nhau và được đánh số tối đa là 10 chữ số
Nguồn dữ liệu: Mã của mỗi mặt hàng sẽ do nhân viên phụ ̣ trách nhập xuất nhập vào.Điều kiện: cột này không được phép để trống và không được phép trùng lặp (do là primary key)
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: xem chi tiết
TenMatHang: Cột này chứa tên các mặt hàng có bán
Primary key: không
Foreign key: khong
Kiểu dữ liệu: varchar(50) Tên của mặt hàng sẽ được nhân viên quản trị nhập thủ côngvới tối đa là 50 kí tự
Nguồn dữ liệu: TenMatHang được nhập thủ công, lấy thông tin trực tiếp mặt hàng hiện có trong cửa hàng
Điều kiện: Cột này không được phép để
trống Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: Xem thông tin mặt hàng
MaTheLoai: Cột này chứa mã của các loại mặt hàng
Primary key: không
MaNSX: Cột này chứa mã của các nhà sản xuất
Primary key: không
Trang 5o Giao diện: không
o Tính năng hệ thống: không
DonGia: Cột này chứa đơn giá của sản phẩm
Primary key: không
Foreign key: không
Kiểu dữ liệu: int(10) Đơn giá sẽ khác nhau và được đánh số tối đa là 10 chữ
số Nguồn dữ liệu:Đơn giá sẽ do nhân viên phụ ̣ trách nhập xuất nhập vào
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: xem thông tin hàng, giỏ hàng
SoLuong: Cột này chứa số lượng mặt hàng
Primary key: không
Foreign key: không
Kiểu dữ liệu: int(10) Số lượng được phép giống nhau và được đánh số tối đa là 10 chữ số
Nguồn dữ liệu:Số lượng sẽ do khách hàng nhập Lấy thông tin từ số lượng mặt hàng khách muốn mua
Điều kiện: cột này không được phép để trống được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: giỏ hàng
SoLuongTon: Cột này chứa số lượng mặt hàng còn có trong của hàng
Primary key: không
Foreign key: không
Kiểu dữ liệu: int(10) Số lượng được phép giống nhau và được đánh số tối đa là 10 chữ số
Nguồn dữ liệu:Số lượng sẽ do nhân viên nhập Lấy thông tin từ số lượng mặt hàng còntồn trong kho tại cửa hàng
Điều kiện: cột này không được phép để trống được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: xem thông tin
MoTa: Cột này chứa thông tin mô tả mặt hàng
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(100) mô tả được nhân viên cửa hàng nhập, tối da 100 kí tự
Nguồn dữ liệu: Do nhân viên thủ công nhập thủ công
Điều kiện: cột này không được phép để trống, không được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: xem thông tin
Trang 6Bảng giohang
Bảng này chứa các thông tin về giỏ hàng Bảng gồm có 4 cột như sau:
MaGH: Cột này chứa mã giỏ hàng
Primary key: không
o Tính năng hệ thống: quản lí giỏ hàng
MaMatHang: Cột này chứa mã của các mặt hàng
Primary key: có
Foreign key: không
Kiểu dữ liệu: int(10) Mã của các mặt hàng sẽ khác nhau và được đánh số tối đa là 10 chữ số
Nguồn dữ liệu: Mã của mỗi mặt hàng sẽ do nhân viên phụ ̣ trách nhập xuất nhập vào.Điều kiện: cột này không được phép để trống và không được phép trùng lặp (do là primary key)
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: xem chi tiết
DonGia: Cột này chứa đơn giá của sản phẩm
Primary key: không
Foreign key: không
Kiểu dữ liệu: int(10) Đơn giá sẽ khác nhau và được đánh số tối đa là 10 chữ
số Nguồn dữ liệu:Đơn giá sẽ do nhân viên phụ ̣ trách nhập xuất nhập vào
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: xem thông tin hàng, giỏ hàng
SoLuong: Cột này chứa số lượng mặt hàng
Primary key: không
Foreign key: không
Kiểu dữ liệu: int(10) Số lượng được phép giống nhau và được đánh số tối đa là 10 chữ số
Nguồn dữ liệu:Số lượng sẽ do khách hàng nhập Lấy thông tin từ số lượng mặt hàng khách muốn mua
Điều kiện: cột này không được phép để trống được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: giỏ hàng
Trang 7Bảng theloai
Bảng này chứa các loại mặt hàng Bảng gồm có 2 cột như sau:
MaTheLoai: Cột này chứa mã thể loại các mặt hàng trong Shop
Primary key: có
Foreign key: không
Kiểu dữ liệu: int(10) Thông tin trong cột này không được phép trùng lặp
Nguồn dữ liệu:Mã thể loại sẽ do nhân viện nhập tùy thuộc vào số loại mặt hàng có trong shop, tối đa 10 chữ số
Điều kiện: cột này không được phép để trống, không được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
TenTheLoai: Cột này chứa tên thể loại
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(50) Thông tin trong cột này không được phép trùng lặp
Nguồn dữ liệu:Tên thể loại sẽ do nhân viện nhập tùy thuộc vào số loại mặt hàng có trong shop, tối đa 50 kí tự
Điều kiện: cột này không được phép để trống, không được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: tìm kiếm thể loại
Bảng nhasanxuat
Bảng này chứa thông tin về nhà sản xuất Bảng gồm có 3 cột như sau:
MaNSX: Cột này chứa mã của các nhà sản xuất
Primary key: có
Foreign key: không
Kiểu dữ liệu: int(10) Mã của các NSX sẽ khác nhau và được đánh số tối đa là 10 chữ số
Nguồn dữ liệu: Mã của mỗi NSX sẽ do nhân viên phụ ̣ trách nhập xuất nhập vào Lấy thông tin từ bảng NhaSanXuat
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
TenNSX: Cột này chứa tên của các nhà sản xuất
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(50) Tên nhà sản xuất được nhập phù hợp với mặt hàng nhập về,tối da 50 kí tự
Nguồn dữ liệu: Tên NSX sẽ do nhân viên phụ ̣ trách nhập xuất nhập vào Lấy thông tin
từ mặt hàng nhập về
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
Trang 8o Giao diện: có
o Tính năng hệ thống: xem thông tin mặt hàng
QuocGia: Cột này chứa tên quốc gia của nhà sản xuất
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(50) Tên quốc gia được nhập phù hợp với mặt hàng nhập về, tối
Bảng này ghi lại các hóa đơn của cửa hàng, gồm có 5 cột như sau:
MaHoaDon: Cột này chứa mã các hóa đơn
Primary key: có
Foreign key: không
Kiểu dữ liệu: int(10) Mã của Hóa đơn sẽ khác nhau và được đánh số tối đa là 10 chữ số
Nguồn dữ liệu: Mã hóa đơn sẽ được cập nhật tự động mỗi khi có hóa đơn mới
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
NgayTao: Cột này ghi lại ngày hóa đơn được tạo
Primary key: không
Foreign key: không
Kiểu dữ liệu: Datetime
Nguồn dữ liệu: Được tạo bởi hệ thống
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
TongTien: Cột này chứa tổng tiền giao dịch của hóa đơn
Primary key: không
Foreign key: khoong
Kiểu dữ liệu: int(10) Tổng tiền sẽ nhập dưới dạng số, tối da là 10 chữ số
Nguồn dữ liệu: tổng tiền của hóa đơn sẽ phụ ̣ thuộc vào mặt hàng mà khách hàng mua.Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: tính tổng tiền của một hóa đơn
Trang 9MaKH: Cột này chứa mã khách hàng đã mua
Primary key: không
Foreign key: có
Kiểu dữ liệu: char(10) Mã của khách hàng trong hóa đơn sẽ bao gồm chả chữ và số, tối đa 10 kí tự
Nguồn dữ liệu: Mã của khách hàng được nhập phù hợp với mỗi hóa đơn được tạo
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
MaNV: Cột này chứa mã nhân viên thực hiện giao dịch
Primary key: không
Foreign key: có
Kiểu dữ liệu: char(10) Mã của nhân viên trong hóa đơn sẽ bao gồm chả chữ và số, tối
đa 10 kí tự
Nguồn dữ liệu: Mã của nhân viên được nhập phù hợp với mỗi hóa đơn được tạo
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: kiểm tra giao dịch mà nhâ viên đã thực hiện
Bảng khachhang
Bảng này ghi lại thông tin của khách hàng đã đăng nhập vào Shop, gồm có 7 cột như sau:MaKH: Cột này chứa mã khách hàng đã mua
Primary key: có
Foreign key: không
Kiểu dữ liệu: char(10) Mã của khách hàng trong hóa đơn sẽ bao gồm chả chữ và số, tối đa 10 kí tự
Nguồn dữ liệu: Mã của khách hàng được nhập phù hợp với mỗi hóa đơn được tạo
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
TenKH: Cột này chứa tên của khách hàng dùng để đăng kí
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(50) Tên của khách hàng được nhập với tối đa 50 kí tự
Nguồn dữ liệu:Tên của khách hàng được hệ thống cập nhật từ chức năng đăng kí tài toàn khoản của hệ thống
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: đăng kí tài khoản
DiaChi: Cột này chứa thông tin địa chỉ của khách hàng
Trang 10Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(255) Địa chỉ của khách hàng được nhập với tối đa 255 kí
tự Nguồn dữ liệu:Địa chỉ của khách hàng do khách hàng nhập lúc đăng kí tài
khoản Điều kiện: cột này không được phép để trống và được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: đăng kí tài khoản
SDT: Cột này chứa thông tin số điện thoại của khách hàng
Primary key: không
Foreign key: không
Kiểu dữ liệu: int(10) Số điện thoại của khách hàng được nhập ở dạng số tối đa 10 kí tự
Nguồn dữ liệu:SDT của khách hàng do khách hàng nhập lúc đăng kí tài khoản
Điều kiện: cột này không được phép để trống và không được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: đăng kí tài khoản
Gmail: Cột này chứa thông tin địa chỉ gmail của khách hàng
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(20) Địa chỉ gmail của khách hàng được nhập với tối đa 20 kí tự.Nguồn dữ liệu:Địa chỉ gmail của khách hàng do khách hàng nhập lúc đăng kí tàikhoản
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: đăng kí tài khoản
TenDangNhap: Cột này chứa thông tin tên đăng nhập của khách hàng
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(20) Tên đăng nhập của khách hàng được nhập với tối đa 20 kí tự
Nguồn dữ liệu:Tên đăng nhập của khách hàng do khách hàng nhập lúc đăng kí tài khoản
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: đăng kí tài khoản, quản lí tài khoản
Matkhau: Cột này chứa thông tin mật khẩu của khách hàng
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(20) Mật khẩu của khách hàng được nhập với tối đa 20 kí tự Nguồn dữ liệu:Mật khẩu của khách hàng do khách hàng nhập lúc đăng kí tài khoản
Trang 11Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: đăng kí tài khoản, quản lí tài khoản
Bảng nhanvien
Bảng này ghi lại thông tin của của nhân viên trong Shop, gồm 4 cột như sau:
MaNV: Cột này chứa mã nhân viên thực hiện giao dịch
Primary key: có
Foreign key: không
Kiểu dữ liệu: char(10) Mã của nhân viên trong hóa đơn sẽ bao gồm chả chữ và số, tối
đa 10 kí tự
Nguồn dữ liệu: Mã của nhân viên được nhập phù hợp với mỗi hóa đơn được tạo
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: kiểm tra giao dịch mà nhâ viên đã thực hiện
TenNV: Cột này chứa tên của nhân viên
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(50) Tên của nhân viên được nhập với tối đa 50 kí tự
Nguồn dữ liệu:Tên của nhân viên được nhập thủ công cho từng nhân viên
Điều kiện: cột này không được phép để trống và được phép trùng lặp
Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: quảng lí nhân viên
DiaChi: Cột này chứa thông tin địa chỉ của nhân viên
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(255) Địa chỉ của nhân viên được nhập với tối đa 255 kí tự
Nguồn dữ liệu: Địa chỉ của nhân viên được thêm thủ công để dễ quản lí
Điều kiện: cột này không được phép để trống và được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: có
o Tính năng hệ thống: quản lí nhân viên
Gmail: Cột này chứa thông tin địa chỉ gmail của nhân viên
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(20) Địa chỉ gmail của khách hàng được nhập với tối đa 20 kí tự.Nguồn dữ liệu:Địa chỉ gmail của nhân viên được nhập thủ công với từng nhân viênlàm việc của Shop
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: có
Trang 12o Tính năng hệ thống: quản lí nhân viên.
Bảng maphieu
Bảng chứa thông tin của các loại phiếu, gồm 2 cột như sau:
MaPhieu: Cột này chứa mã các loại phiếu
Primary key: có
Foreign key: không
Kiểu dữ liệu: int(10) Mã loại phiếu được nhập ở dạng số tối đa 10 kí tự
Nguồn dữ liệu: Mã loại phiếu được nhập phù hợp với các loại phiếu lưu hành trong shop
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
TenPhieu: Cột này chứa tên các loại phiếu
Primary key: không
Foreign key: không
Kiểu dữ liệu: varchar(20) Tên loại phiếu được nhập tối đa 20 ki tự
Nguồn dữ liệu: Tên loại phiếu được nhập phù hợp với các loại phiếu lưu hành trong shop
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
Bảng nhapxuat
Bảng chứa thông tin nhập xuất của shop, gồm 7 cột như sau:
MaNX: Cột này chứa mã Nhập xuất của cửa hàng
Primary key: có
Foreign key: không
Kiểu dữ liệu: int(10) Mã loại phiếu được nhập ở dạng số tối đa 10 kí tự
Nguồn dữ liệu: Mã nhập xuất được nhập phù hợp với mỗi lần nhập xuất
Điều kiện: cột này không được phép để trống và không được phép trùng
lặp Sử dụ ̣ng trong hệ thống:
o Giao diện: không
o Tính năng hệ thống: không
MaMatHang: Cột này chứa mã của các mặt hàng
Primary key: không
Sử dụ ̣ng trong hệ thống: