CHƯƠNG 3: PHÂN TÍCH, THIẾT KỂ HỆ THỐNG
3.3.1. Xác định các tập thực thể (bảng) thuộc tính chính
Bảng 1. Bảng KhachHang (Customer) ST
T
Thuộc tính Kiểu dữ liệu Ràng buộc
1 maKhachHang Char(36) Khóa chính
2 Ten Varchar(100) Not null
3 Ho Varchar(100) Not null
4 EmailXacNhan Varchar(100) Not null
5 GioiTinh TINYINT(4) Not null
6 NgaySinh Varchar(100) Not null
7 DiaChi Date Not null
8 Password Varchar(100) Not null
9 SoDienThoai Number(12) Not null
10 Emaill Varchar(100) Null
Bảng 2. Bảng Nguoidung (User) ST
T Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaMguoiDung Char(36) Khóa chính
2 Ten Varchar(100) Not null
3 Ho Varchar(100) Not null
4 Email Varchar(100) Not null
8 Password Varchar(100) Not null
9 SoDienThoai Number(12) Not null
10 MaPhanQuyen Char(36) Khoa ngoại
Bảng 3. Bảng SanPham (Product)
STT Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaSanPham Char(36) Khóa chính
2 Ten Varchar(100) Not null
3 MaNhaCungCap Char(36) Khóa ngoại
4 MaNhanHang Char(36) Khóa ngoại
5 Gia Int(11) Not null
6 ThuocTinh Varchar(100) null
7 MaThue Char(36) null
Bảng 4. Bảng ThuocTinhSanPham(Product_attribute)
STT Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaSanPham Char(36) Khóa chính
2 TenThuocTinh Varchar(100) Not null
3 Gia INT(36) Not null
Bảng 5. Bảng DanhMuc (Product_category)
STT Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaDanhMuc Char(36) Khóa chính
2 LopCha Varchar(100) not null
3 MaSanPham Char(36) Khóa ngoại
Bảng 6. Bảng DonHang (Order) ST
T Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaKhachHang Char(36) Khóa ngoại
2 Ten Varchar(100) Not null
3 Ho Varchar(100) Not null
4 MaDonHang Varchar(100) Khóa chính
5 Email Varchar(100) Not null
6 DiaChi Varchar(100) Not null
7 GiaBanDau Int(11) Null
8 PhiVanChuyen Int(11) Null
9 GiamGia Int(11) Null
10 ChiPhiKhac Intt(11) Null
11 Tong Int(11) Not null
12 NgayDatHang Date Not null
Bảng 7. Bảng ChiTietDonHang (Order_detail)
STT Thuộc tính Kiểu dữ liệu Rang buộc
1 MaKhachHang Char(36) Khóa ngoại
2 Ten Varchar(100) Not null
3 Ho Varchar(100) Not null
4 MaDonHang Varchar(100) Khóa chính
5 Email Varchar(100) Not null
6 DiaChi Varchar(100) Not null
7 GiaBanDau Int(11) Null
8 PhiVanChuyen Int(11) Null
9 GiamGia Int(11) Null
10 ChiPhiKhac Intt(11) Null
11 Tong Int(11) Not null
12 NgayDatHang Date Not null
13 TrangThaiDonHang Varchar(100) Not null
14 TrangThaiVanChuyen Varchar(100) Not null
15 TrangThaiThanhToan Varchar(100) Not null
Bảng 8. Bảng NhaCungCap (Supplier) ST
T
Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaSanPham Char(36) Khóa ngoại
2 TenNhaCungCap Varchar(100) Not null
3 MaNhaCungCap Char(36) Khóa chính
4 Email VarChar(100) Not null
5 SoDienThoai Int(11) Not null
6 DiaChi Varchar(100) Not null
Bảng 9. Bảng NhanHang (Brand)
STT Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaNhanHang Char(36) Khóa chính
2 TenNhanHang Varchar(100) Not null
Bảng 10.Bảng LichSuDonHang (Order_history)
STT Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaKhachHang Char(36) Khóa chính
2 Ten Varchar(100) Not null
3 Ho Varchar(100) Not null
4 MaDonHang Varchar(100) Khóa ngoại
5 Email Varchar(100) Not null
6 DiaChi Varchar(100) Not null
7 GiaBanDau Int(11) Not null
8 PhiVanChuyen Int(11) Not null
9 GiamGia Int(11) Null
10 ChiPhiKhac Intt(11) Not null
11 Tong Int(11) Not null
12 NgayDatHang Date Not null
Bảng 11.Bảng DiaChiKhachHang (customer_address)
STT Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaDiaChi Char(36) Khóa chính
2 MaKhachHang Char(36) Khóa ngoại
3 Ho Varchar(100) Not null
4 Ten Varchar(100) Not null
5 Email Varchar(100) Not null
6 SoDienThoai Nuumber(12) Not null
Bảng 12. Bảng Quyen (Permission) ST
T
Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaNguoiDung Char(36) Khóa chính
2 MaPhanQuyen Char(36) Not null
3 MaVaiTro Char(36) Khóa ngoại
Bảng 13. Bảng VaiTro (Role) ST
T
Thuộc tính Kiểu dữ liệu Ràng buộc
1 TenVaiTro Varchar(100) Not null
2 Slug Varchar(100) Not null
3 MaVaiTro Char(36) Khóa chính
Bảng 14. Bảng GiamGia (Discount)
STT Thuộc tính Kiểu dữ liệu Ràng buộc
1 MaGiamGia Char(36) Khóa chính
2 Loai Char(36) Not null
3 GiaTri Varchar(100) Not null
4 SoLuong Varchar(100) Not null
5 DaSuDung Varchar(100) Not null
6 YeuCauDangNhap Int(11) Null
Mối quan hệ giữa các thực thể:
- KhachHang (Customer) với DiaChiKhachHang (Customer_address): Mỗi khách hàng có nhiều địa chỉ, mỗi địa chỉ thuộc về một khách hàng (1-n) - KhachHang (Customer) với DonHang (Order): Mỗi khách hàng có thể đặt
nhiều đơn hàng, mỗi đơn hàng thuộc về một khách hàng (1-n)
- KhachHang (Customer) với LichSuDonHang (Order_history): Mỗi khách hàng có nhiều lịch sử đơn hàng, mỗi lịch sử đơn hàng thuộc về một khách hàng (1-n)
- KhachHang (Customer) với DanhGiaSanPham (Product_review): Mỗi khách hàng được đánh giá nhiều sản phẩm, mỗi đánh giá là của một khách hàng (1-n) - KhachHang (Customer) với ChiTietDonHang (Order_detail): Mỗi khách hàng có nhiều chi tiết đơn hàng, mỗi chi tiết đơn hàng thuộc về một khách hàng (1-n) - DonHang (Order) với GiamGia (discount): Mỗi đơn hàng sẽ ghi nhận một mã
giảm giá. Mỗi mã giảm giá thuộc về nhiều đơn hàng. (1-n)
- DonHang (Order) với LichSuDonHang (Order_history): Mỗi đơn hàng sẽ dược ghi nhận một lịch sử mua hàng. Mỗi lịch sử mua hàng có một đơn hàng. (1-1) - SanPham (Product) với ChiTietDonHang (Order_detail): Mỗi sản phẩm thuộc
về nhiều đơn hàng, mỗi đơn hàng có nhiều sản phẩm (n-n)
- SanPham (Product) với SanPhamGiamGia (Product_promotion): Mỗi sản phẩm sẽ tham gia nhiều lần giảm giá, mỗi lần giảm giá sẽ có nhiều sản phẩm tham gia (n-n)
- SanPham (Product) với ThuocTinhSanPham (Product_attribute): Mỗi sản phẩm có nhiều thuộc tính, một thuộc tính thuộc về 1 sản phẩm (1-n)
- SanPham (Product) với NhanHieu (Brand): Mỗi sản phẩm thuộc về một nhãn hàng, mỗi nhãn hàng sẽ có nhiều sản phẩm (1-n)
- SanPham (Product) với NhaCungCap (Supplier): Mỗi sản phẩm thuộc về một nhà cung cấp, mỗi nhà cung cấp sẽ có nhiều sản phẩm (1-n)
- SanPham (Product) với DanhMuc (Product_Category): Mỗi sản phẩm thuộc về một nhiều danh mục , mỗi danh mục sẽ có nhiều sản phẩm (n-n)
- SanPham (Product) với DanhGiaSanPham (Product_Review): Mỗi sản phẩm có nhiều đánh giá, mỗi đánh giá thuộc về một sản phẩm (1-n)
- NguoiDung (User) với VaiTro (Role): Mỗi người dùng sẽ có một vai trò, Mỗi vai trò sẽ có nhiều người đảm nhận (1-n)
- VaiTro (Role) với PhanQuyen (Permisson): mỗi Vai trò sẽ được cấp nhiều quyền khác nhau, mỗi quyền sẽ thuộc về nhiều vai trò. (1-n)