Hình 3.11 Sơ Đồ Tiến Trình Của Nhà Cung Cấp 3.3.2 SơĐồ Tiến Trình Của Món Ăn Hình 3.12 SơĐồ Tiến Trình Của Món Ăn
3.3.3 Sơ Đồ Tiến Trình Của Thông Tin Phản Hồi
Hình 3.13 SơĐồ Tiến Trình Của Thông Tin Phản Hồi
3.4 MÔ HÌNH THỰC THỂ KẾT HỢP Nhà Cung Cấp Phân Loại Nhà Cung Cấp Khu Vực Nhà Cung Cấp Thuôc 1 n 1 n 1 Ban Quản Trị Có Có Có n Món Ăn Thuộc n 1 Có Thuộc Tin Tức Phân Loại Tin Tức 1 n Phản Hồi Từ Thực Khách 1 1 n n Có Phân Loại Món Ăn Hình 3.14 Sơđồ quan hệ thực thể
3.5 MÔ HÌNH DỮ LIỆU QUAN HỆ
Cơ sở dữ liệu có cấu trúc như sau:
3.5.1 Bảng PhanLoaiNCC
PhanLoaiNCC(MaLoaiNCC, TenLoaiNCC)
Đây là bảng lưu trữ dữ liệu về phân loại nhà cung cấp, mỗi một nhà cung cấp thuộc một loại nhà cung cấp.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaLoaiNCC Tinyint Mã loại nhà cung cấp 2 TenLoaiNCC Nvarchar Tên loại nhà cung cấp
Bảng 1: PhanLoaiNCC
3.5.2 Bảng KhuVucNCC
KhuVucNCC(MaKhuVuc, TenKhuVuc)
Đây là bảng lưu trữ dữ liệu về khu vực nhà cung cấp.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaKhuVuc Tinyint Mã Khu Vực
2 TenKhuVuc Nvarchar Tên Khu Vực Bảng 2: KhuVucNCC
3.5.3 Bảng NhaCungCap
NhaCungCap(MaNhaCungCap, MaKhuVuc, MaLoaiNCC, TenNCC, TenDangNhap,
MatKhau, DiaChiNCC, SoDienThoai, DiaChiEmail, GioiThieu, HinhAnh, CauHoiBiMat, CauTraLoi, NgayDangKy, TrangThai)
Đây là bảng lưu trữ dữ liệu về thông tin nhà cung cấp.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaNhaCungCap Int Mã nhà cung cấp
2 MaKhuVuc Tinyint Mã khu vực
3 MaLoaiNCC Tinyint Mã loại nhà cung cấp
4 TenNCC Nvarchar Tên nhà cung cấp
5 TenDangNhap Varchar Tên đăng nhập
6 MatKhau Varchar Mật khẩu
7 DiaChiNCC Nvarchar Địa chỉ nhà cung cấp 8 SoDienThoai Varchar Sốđiện thoại
9 DiaChiEmail Varchar Địa chỉ Email 10 GioiThieu Nvarchar Giới thiệu
11 HinhAnh Varchar Hình ảnh
12 CauHoiBiMat Nvarchar Câu hỏi bí mật 13 CauTraLoi Nvarchar Câu trả lời 14 NgayDangKy Datetime Ngày đăng ký
15 TrangThai Tinyint Trạng thái
Bảng 3: Nhà cung cấp
3.5.4 Bảng PhanLoaiMonAn
PhanLoaiMonAn(MaLoaiMonAn, TenLoaiMonAn )
Đây là bảng lưu trữ dữ liệu phân loại món ăn. Nó cung cấp thể loại cho các món ăn.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaLoaiMonAn Tinyint Mã loại món ăn 2 TenLoaiMonAn Nvarchar Tên loại món ăn
Bảng 4: Phân loại món ăn
3.5.5 Bảng MonAn
MonAn(MaMonAn, MaNhaCungCap, MaLoaiMonAn, TenMonAn, HinhAnh,
GioiThieu, NgayDangBai, TrangThai)
Đây là bảng lưu trữ dữ liệu về món ăn, cho biết thông tin đầy đủ và chi tiết đến các món ăn.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaMonAn Int Mã món ăn
2 MaNhaCungCap Int Mã nhà cung cấp
3 MaLoaiMonAn Tinyint Mã loại món ăn
4 TenMonAn Nvarchar Tên món ăn
5 HinhAnh Varchar Hình ảnh
6 GioiThieu Nvarchar Giới thiệu 7 NgayDangBai Datetime Ngày đăng bài
8 TrangThai Bit Trạng thái
Bảng 5 : Món ăn
3.5.6 Bảng PhanLoaiTinTuc
PhanLoaiTinTuc(MaLoaiTT, TenLoaiTT )
Đây là bảng lưu trữ dữ liệu loại tin tức.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaLoaiTT Tinyint Mã loại tin tức 2 TenLoaiTT Nvarchar Tên loại tin tức
Bảng 6: Phân loại tin tức
3.5.7 Bảng TinTuc
TinTuc(MaTinTuc, MaLoaiTT, TieuDe, NoiDung, NgayDangTin )
Đây là bảng lưu trữ dữ liệu về tin tức.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaTinTuc Int Mã tin tức
2 MaLoaiTT Tinyint Mã loại tin tức
3 TieuDe Nvarchar Tiêu đề
4 NoiDung Nvarchar Nội dung 5 NgayDangTin Datetime Ngày đăng tin
Bảng 7: Tin tức
3.5.8 Bảng BanQuanTri
BanQuanTri(MaQuanTri, TenDangNhap, MatKhau, HoTen, DiaChi, SoDienThoai,
DiaChiEmail, LoaiQuanTri )
Đây là bảng lưu trữ dữ liệu về ban quản trị.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaQuanTri Int Mã quản trị
2 TenDangNhap Varchar Tên đăng nhập
3 MatKhau Varchar Mật khẩu
4 HoTen Nvarchar Họ tên
5 DiaChi Nvarchar Địa chỉ
6 SoDiaChi Varchar Sốđiện thoại 7 DiaChiEmail Varchar Địa chỉ Email 8 LoaiQuanTri Bit Loại quản trị
Bảng 8: Ban quản trị
3.5.9 Bảng PhanHoiTuThucKhach
PhanHoiTuThucKhach(MaPhanHoi, MaNhaCungCap, MaQuanTri, TenThucKhach,
DiaChi, SoDienThoai, DiaChiEmail, TieuDe, NoiDung, TraLoi, NgayGui, TrangThai) Đây là bảng lưu trư dữ liệu về phản hồi từ thực khách.
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MaPhanHoi Int Mã phản hồi
2 MaNhaCungCap Int Mã nhà cung cấp
3 MaQuanTri Int Mã quản trị 4 TenThucKhach Nvarchar Tên thực khách
5 DiaChi Nvarchar Địa chỉ
6 SoDienThoai Varchar Sốđiện thoại 7 DiaChiEmail Varchar Địa chỉ Email
8 TieuDe Nvarchar Tiêu đề
9 NoiDung Nvarchar Nội dung
10 TraLoi Nvarchar Trả lời
11 NgayGui Datetime Ngày gửi
12 TrangThai Bit Trạng thái
Bảng 9: Phản hồi từ thực khách
3.6 QUAN HỆ GIỮA CÁC BẢNG
3.7 Ràng buộc toàn vẹn
3.7.1 Ràng buộc toàn vẹn trên một bảng
Ràng buộc 1:
BanQuanTri(MaQuanTri, TenDangNhap, MatKhau, HoTen, DiaChi, SoDienThoai,
DiaChiEmail, LoaiQuanTri)
Nội dung: Mỗi một ban quản trị phải có một mã số phân biệt với các ban quản trị
Bối cảnh: BanQuanTri
Điều kiện: ∀q1, q2 ∈ BanQuanTri
q1.MaQuanTri<> q2.MaQuanTri
Tầm ảnh hưởng:
Thêm Xoá Sửa
BanQuanTri + - +[MaQuanTri]
Ràng buộc 2:
NhaCungCap(MaNhaCungCap, MaKhuVuc, MaLoaiNCC, TenNCC, TenDangNhap,
MatKhau, DiaChiNCC, SoDienThoai, DiaChiEmail, GioiThieu, HinhAnh, CauHoiBiMat, CauTraLoi, NgayDangKy, TrangThai)
Nội dung: Mỗi nhà cung cấp phải có một mã nhà cung cấp phân biệt với các nhà cung cấp.
Bối cảnh: NhaCungCap
Điều kiện: ∀q1, q2 ∈ NhaCungCap
q1.MaNhaCungCap<>q2.MaNhaCungCap
Tầm ảnh hưởng:
Thêm Xoá Sửa
NhaCungCap + - +[NhaCungCap]
Ràng buộc 3:
MonAn(MaMonAn, MaNhaCungCap, MaLoaiMonAn, TenMonAn, HinhAnh,
GioiThieu, NgayDangBai, TrangThai)
Nội dung: Mỗi một món ăn phải có một mã số phân biệt với các món ăn khác SVTH: Đỗ Thị Hiền, Nguyễn Thị Thuý Loan. 55
Bối cảnh: MonAn
Điều kiện: ∀q1, q2 ∈ MonAn q1.MonAn<> q2.MonAn
Tầm ảnh hưởng:
Thêm Xoá Sửa
MonAn + - +[MonAn]
Ràng buộc 4:
TinTuc(MaTinTuc, MaLoaiTT, TieuDe, NoiDung, NgayDangTin) Nội dung: Mỗi một tin tức có một mã số phân biệt với các tin tức khác
Bối cảnh: TinTuc
Điều kiện: ∀q1, q2 ∈ TinTuc q1.TinTuc<> q2.TinTuc
Tầm ảnh hưởng:
Thêm Xoá Sửa
TinTuc + - +[TinTuc]
Ràng buộc 5:
PhanHoiTuThucKhach(MaPhanHoi, MaNhaCungCap, MaQuanTri, TenThucKhach,
DiaChi, SoDienThoai, DiaChiEmail, TieuDe, NoiDung, TraLoi, NgayGui,TrangThai)
Nội dung: Mỗi một phản hồi từ thực khách có một mã phản hồi phân biệt với các phản hồi khác
Bối cảnh: PhanHoiTuThucKhach
Điều kiện: ∀q1, q2 ∈ PhanHoiTuThucKhach
q1.PhanHoiTuThucKhach<> q2.PhanHoiTuThucKhach Tầm ảnh hưởng: Thêm Xoá Sửa PhanHoiTuThucKhach + - +[PhanHoiTuThucKhach] Ràng buộc 6: KhuVucNCC(MaKhuVuc, TenKhuVuc)
Nội dung: Mỗi một khu vực nhà cung cấp phải có một mã số khu vực phân biệt với các khu vực
Bối cảnh: KhuVucNCC
Điều kiện: ∀q1, q2 ∈ KhuVucNCC
q1.KhuVucNCC<> q2.KhuVucNCC Tầm ảnh hưởng: Thêm Xoá Sửa KhuVucNCC + - +[KhuVucNCC] 3.7.2 Ràng buộc toàn vẹn về miền giá trị Ràng buộc 7:
Mô tả: Ngày viết phải nhỏ hơn hoặc bằng ngày trên mạng.
Thuật toán:
Ngày viết bài <= Ngày đăng bài
Ràng buộc 8: Mô tả:
Số ký tự của tiêu đề phải nhỏ hơn hoặc bằng 200
Câu trả lời không được để trống và phải dài không quá 50 ký tự. Số ký tự của trích dẫn giới thiệu dài không quá 4000 ký tự. Chiều dài , chiều cao của ảnh đại diện >0.
Thuật toán: Length(TieuDe)<=200 and Length(CauTraLoi )<=50 and TieuDe >0 and HinhAnh >0 Ràng buộc 9: Mô tả: Số ký tự của tên đăng nhập phải khác rỗng và có ký tự từ 6 đến 24. Số ký tự của mật khẩu không được để rỗng và có ký tự từ 6 đến 24. Thuật toán:
Length(ID) >= 6 and Length(ID)<=24 and Length(MK) >=6 and Length(MK) <=24.
Ràng buộc 10:
Mô tả:
Sốđiện thoại phải là chữ số có từ 8-12 ký tự Email không được để trống và phải hợp lệ. Thuật toán:
Length(SoDienThoai)>=8 and Length(SoDienThoai)<=12 and Length(Email) <> 0.
3.7.3 Ràng buộc liên bộ
Ràng buộc 11:
NhaCungCap(MaNhaCungCap, MaKhuVuc, MaLoaiNCC, TenNCC, TenDangNhap,
MatKhau, DiaChiNCC, SoDienThoai, DiaChiEmail, GioiThieu, HinhAnh, CauHoiBiMat, CauTraLoi, NgayDangKy, TrangThai)
Bối cảnh: NhaCungCap
Điều kiện: q1∈ T NhaCungCap, q2∈T NhaCungCap
q1.MaNhaCungCap<>q2.MaNhaCungCap Or q1.MaKhuVuc<>q2.MaKhuVuc Or q1.MaLoaiNCC<> q2.MaLoaiNCC Tầm ảnh hưởng: Thêm Xoá Sửa NhaCungCap + - +[MaNhaCungCap, MaKhuVuc,MaLoaiNCC] Ràng buộc 12:
MonAn(MaMonAn, MaNhaCungCap, MaLoaiMonAn, TenMonAn, HinhAnh,
GioiThieu, NgayDangBai, TrangThai)
Bối cảnh: MonAn
Điều kiện: q1∈ T MonAn, q2∈ T MonAn
q1.MaMonAn<>q2.MaMonAn
Or q1.MaNhaCungCap<>q2.MaNhaCungCap Or q1.MaLoaiMonAn<> q2.MaLoaiMonAn
Tầm ảnh hưởng:
Thêm Xoá Sửa
MonAn + - +[MaMonAn,MaNhaCungCap, MaLoaiMonAn]
Ràng buộc 13:
PhanHoiTuThucKhach(MaPhanHoi, MaNhaCungCap, MaQuanTri, TenThucKhach,
DiaChi, SoDienThoai, DiaChiEmail, TieuDe, NoiDung, TraLoi, NgayGui,TrangThai)
Bối cảnh: PhanHoiTuThucKhach
Điều kiện: q1∈ T PhanHoiTuThucKhach, q2∈ T PhanHoiTuThucKhach
q1.MaPhanHoi<>q2.MaPhanHoi Or q1.MaNhaCungCap<>q2.MaNhaCungCap Or q1.MaQuanTri<> q2.MaQuanTri Tầm ảnh hưởng: Thêm Xoá Sửa PhanHoiTuThucKhach + - +[MaPhanHoi, MaNhaCungCap,MaQuanTri] Ràng buộc 14:
TinTuc(MaTinTuc, MaLoaiTT, TieuDe, NoiDung, NgayDangTin) Bối cảnh: TinTuc
Điều kiện: q1∈ T TinTuc, q2∈ T TinTuc
q1.MaTinTuc<>q2.MaTinTuc Or q1.MaLoaiTinTuc<>q2.MaLoaiTinTuc
Tầm ảnh hưởng:
Thêm Xoá Sửa
TinTuc + - +[MaTinTuc, MaLoaiTinTuc]
3.7.4 Ràng buộc toàn vẹn có bối cảnh gồm nhiều quan hệ
3.7.4.1 Ràng buộc toàn vẹn về phụ thuộc tồn tại
Ràng buộc 15:
PhaLoaiNCC(MaLoaiNCC, TenLoaiNCC)
NhaCungCap(MaNhaCungCap, MaKhuVuc, MaLoaiNCC, TenNCC, TenDangNhap,
MatKhau, DiaChiNCC, SoDienThoai, DiaChiEmail, GioiThieu, HinhAnh, CauHoiBiMat, CauTraLoi, NgayDangKy, TrangThai)
Bối cảnh: PhanLoaiNCC, NhaCungCap
Điều kiện: PhanLoaiNCC[MaLoaiNCC] ⊆ NhaCungCap[MaLoaiNCC]
Tầm ảnh hưởng:
Thêm Xoá Sửa
PhanLoaiNCC + - +[MaLoaiNCC]
NhaCungCap - + +[MaLoaiNCC]
Ràng buộc 16:
Bối cảnh: KhuVucNCC, NhaCungCap
Điều kiện: KhuVucNCC[MaKhuVuc] ⊆ NhaCungCap[MaKhuVuc]
Tầm ảnh hưởng:
Thêm Xoá Sửa
KhuVucNCC + - +[MaKhuVuc]
NhaCungCap - + +[MaKhuVuc]
Ràng buộc 17:
TinTuc(MaTinTuc, MaLoaiTT, TieuDe, NoiDung, NgayDangTin) PhanLoaiTinTuc(MaLoaiTT, TenTT)
Bối cảnh: PhanLoaiTinTuc, TblTinTuc
Điều kiện: PhanLoaiTinTuc[MaLoaiTT] ⊆ TinTuc[MaLoaiTT]
Tầm ảnh hưởng:
Thêm Xoá Sửa
PhanLoaiTinTuc + - +[MaLoaiTT]
TinTuc - + +[MaLoaiTT]
Ràng buộc 18:
NhaCungCap(MaNhaCungCap, MaKhuVuc, MaLoaiNCC, TenNCC, TenDangNhap,
MatKhau, DiaChiNCC, SoDienThoai, DiaChiEmail, GioiThieu, HinhAnh, CauHoiBiMat, CauTraLoi, NgayDangKy, TrangThai)
MonAn(MaMonAn, MaNhaCungCap, MaLoaiMonAn, TenMonAn, HinhAnh,
GioiThieu, NgayDangBai, TrangThai)
Bối cảnh: NhaCungCap, MonAn
Điều kiện: NhaCungCap[MaNhaCungCap] ⊆ MonAn[MaNhaCungCap]
Tầm ảnh hưởng:
Thêm Xoá Sửa
PhanLoaiNhaCungCap + - +[MaNhaCungCap]
MonAn - + +[MaNhaCungCap]
Ràng buộc 19:
MonAn(MaMonAn, MaNhaCungCap, MaLoaiMonAn, TenMonAn, HinhAnh,
GioiThieu, NgayDangBai, TrangThai)
PhanLoaiMonAn(MaLoaiMonAn, TenLoaiMonAn) Bối cảnh: PhanLoaiMonAn, MonAn
Điều kiện: PhanLoaiMonAn[MaLoaiMonAn] ⊆ MonAn[MaLoaiMonAn]
Tầm ảnh hưởng:
Thêm Xoá Sửa
PhanLoaiTinTuc + - +[MaLoaiTT]
TinTuc - + +[MaLoaiTT]
Ràng buộc 20:
PhanHoiTuThucKhach(MaPhanHoi, MaNhaCungCap, MaQuanTri, TenThucKhach,
DiaChi, SoDienThoai, DiaChiEmail, TieuDe, NoiDung, TraLoi, NgayGui,TrangThai)
BanQuanTri(MaQuanTri,TenDangNhap, MatKhau, HoTen, DiaChi, SoDienThoai,
DiaChiEmail, LoaiQuanTri)
Bối cảnh: PhanHoiTuThucKhach, BanQuanTri
Điều kiện: PhanHoiTuThucKhach[MaQuanTri] ⊆ BanQuanTri[MaQuanTri]
Tầm ảnh hưởng:
Thêm Xoá Sửa
PhanHoiTuThucKhach + - +[MaQuanTri]
BanQuanTri - + +[MaQuanTri]
3.7.4.2 Ràng buộc liên thuộc tính , liên quan hệ
Ràng buộc 21:
MonAn(MaMonAn, MaNhaCungCap, MaLoaiMonAn, TenMonAn, HinhAnh,
GioiThieu, NgayDangBai, TrangThai)
NhaCungCap(MaNhaCungCap, MaKhuVuc, MaLoaiNCC, TenNCC, TenDangNhap,
MatKhau, DiaChiNCC, SoDienThoai, DiaChiEmail, GioiThieu, HinhAnh, CauHoiBiMat, CauTraLoi, NgayDangKy, TrangThai)
Bối cảnh: MonAn ,NhaCungCap Điều kiện: ∀qi ∈ MonAn
∃ qj ∈ T NhaCungCap: qi.MaNhaCungCap=qj.MaNhaCungCap Thì qi.NgayDangKy>=qj.NgayDangBai Tầm ảnh hưởng: Thêm Xoá Sửa MonAn + - +[NgayDangBai] NhaCungCap - + +[NgayDangKy]
Bối cảnh: NhaCungCap ,PhanHoiTuThucKhach Điều kiện: ∀qi ∈ NhaCungCap
∃ qj ∈ T PhanHoiTuThucKhach: qi.MaNhaCungCap=qj.MaNhaCungCap Thì qi.NgayGui<=qj.NgayDangKy Tầm ảnh hưởng: Thêm Xoá Sửa PhanHoiTuThucKhach + - +[NgayGui] NhaCungCap - + +[NgayDangKy]
3.8 DẠNG CHUẨN
NhaCungCap(MaNhaCungCap, MaKhuVuc, MaLoaiNCC, TenNCC, TenDangNhap,
MatKhau, DiaChiNCC, SoDienThoai, DiaChiEmail, GioiThieu, HinhAnh, CauHoiBiMat, CauTraLoi, NgayDangKy, TrangThai)
Nhà cung cấp đạt dạng chuẩn 1 vì mọi thuộc tính của nhà cung cấp đều là thuộc tính đơn.
Nhà Cung Cấp đạt dạng chuẩn 2 vì mọi thuộc tính không khóa của Nhà Cung Cấp đều phụ thuộc đầy đủ vào các khóa của Nhà Cung Cấp.
Nhà Cung Cấp đạt dạng chuẩn 3 vì mọi thuộc tính không khóa của Nhà Cung Cấp đều không phụ thuộc bắc cầu vào một khóa nào của Nhà Cung Cấp.
Nhà Cung Cấp có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
PhanLoaiNCC(MaLoaiNCC, TenLoaiNCC)
Đạt dạng chuẩn 1 vì mọi thuộc tính của nhà cung cấp đều là thuộc tính đơn. FPhanLoaiNCC = { f1: MaLoaiNCCÆ TenLoaiNCC } Æ PhanLoaiNCC đạt
dạng chuẩn 2.
PhanLoaiNCC(MaLoaiNCC, TenLoaiNCC) đạt dạng chuẩn 3 vì chỉ có một thuộc tính không khóa là TenLoaiNCC và thuộc tính này không phụ thuộc bắc cầu vào các khóa.
PhanLoaiNCC(MaLoaiNCC, TenLoaiNCC) có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
KhuVucNCC(MaKhuVuc, TenKhuVuc)
KhuVucNCC Đạt dạng chuẩn 1 vì mọi thuộc tính của KhuVucNCC đều là thuộc tính đơn.
FKhuVucNCC = { f1: MaKhuVucÆ TenKhuVuc } Æ KhuVucNCC đạt dạng chuẩn 2.
KhuVucNCC(MaKhuVuc, TenKhuVuc) đạt dạng chuẩn 3 vì chỉ có một thuộc tính không khóa là TenKhuVuc và thuộc tính này không phụ thuộc bắc cầu vào các khóa.
KhuVucNCC có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
PhanLoaiMonAn(MaLoaiMonAn, TenLoaiMonAn )
PhanLoaiMonAn Đạt dạng chuẩn 1 vì mọi thuộc tính của nhà cung cấp đều là thuộc tính đơn.
FPhanLoaiMonAn = { f1: MaLoaiMonAnÆ TenLoaiMonAn} ÆPhanLoaiMonAn đạt dạng chuẩn 2.
PhanLoaiMonAn( MaLoaiMonAn, TenLoaiMonAn) đạt dạng chuẩn 3 vì chỉ có một thuộc tính không khóa là TenLoaiMonAn và thuộc tính này không phụ thuộc bắc cầu vào các khóa.
PhanLoaiMonAn có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
MonAn(MaMonAn, MaNhaCungCap, MaLoaiMonAn, TenMonAn, HinhAnh,
GioiThieu, NgayDangBai, TrangThai)
MonAn Đạt dạng chuẩn 1 vì mọi thuộc tính của món ăn đều là thuộc tính đơn. MonAn đạt dạng chuẩn 2 vì mọi thuộc tính không khóa của MonAn đều phụ
thuộc đầy đủ vào các khóa MonAn.
MonAn đạt dạng chuẩn 3 vì mọi thuộc tính không khóa của MonAn không phụ thuộc bắc cầu vào các khóa.
MonAn có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
PhanLoaiTinTuc(MaLoaiTT, TenLoaiTT )
PhanLoaiTinTuc Đạt dạng chuẩn 1 vì mọi thuộc tính của PhanLoaiTinTuc đều là thuộc tính đơn.
FPhanLoaiTinTuc = { f1: MaLoaiTTÆ TenLoaiTT} ÆPhanLoaiTT đạt dạng chuẩn 2.
PhanLoaiTinTuc( MaLoaiTinTuc, TenLoaiTinTuc) đạt dạng chuẩn 3 vì chỉ có một thuộc tính không khóa là TenLoaiTinTuc và thuộc tính này không phụ thuộc bắc cầu vào các khóa.
PhanLoaiTinTuc có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
TinTuc(MaTinTuc, MaLoaiTT, TieuDe, NoiDung, NgayDangTin )
TinTuc đạt dạng chuẩn 1 vì mọi thuộc tính của TinTuc đều là thuộc tính đơn. FtinTuc{f1: MaTinTuc, MaLoaiTTÆ TieuDe, NoiDung, NgayDangTin }Æ
Đạt dạng chuẩn 2.
TinTuc đạt dạng chuẩn 3 vì mọi thuộc tính không khóa của TinTuc không phụ thuộc bắc cầu vào các khóa.
TinTuc có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
BanQuanTri(MaQuanTri, TenDangNhap, MatKhau, HoTen, DiaChi, SoDienThoai,
DiaChiEmail, LoaiQuanTri )
BanQuanTri đạt dạng chuẩn 1 vì mọi thuộc tính của BanQuanTri đều là thuộc tính đơn.
FBanQuanTri{f1: MaQuanTriÆTenDangNhap, MatKhau, HoTen, DiaChi, SoDienThoai, DiachiEmail , LoaiQuanTri}Æ đạt dạng chuẩn 2 vì mọi thuộc tính không khóa của BanQuanTri đều phụ thuộc đầy đủ vào các khóa BanQuanTri.
BanQuanTri đạt dạng chuẩn 3 vì mọi thuộc tính không khóa của BanQuanTri không phụ thuộc bắc cầu vào các khóa.
BanQuanTri có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
PhanHoiTuThucKhach(MaPhanHoi, MaNhaCungCap, MaQuanTri, TenThucKhach,
DiaChi, SoDienThoai, DiaChiEmail, TieuDe, NoiDung, TraLoi, NgayGui, TrangThai) PhanHoiTuThucKhach đạt dạng chuẩn 1 vì mọi thuộc tính của
PhanHoiTuThucKhach đều là thuộc tính đơn.
PhanHoiTuThucKhach đạt dạng chuẩn 2 vì mọi thuộc tính không khóa của PhanHoiTuThucKhach đều phụ thuộc đầy đủ vào các khóa.
PhanHoiTuThucKhach đạt dạng chuẩn 3 vì mọi thuộc tính không khóa của PhanHoiTuThucKhach không phụ thuộc bắc cầu vào các khóa.
PhanHoiTuThucKhach có vế trái của phụ thuộc hàm là siêu khóa. Nó đạt dạng chuẩn BCK.
3.9 SƠĐỒ WEBSITE
3.9.1 Sơ Đồ Cho Người Dùng
3.9.2 SơĐồ Cho Ban Quản Trị
CHƯƠNG 4 KẾT QUẢ THỰC HIỆN 4.1 NHỮNG TRANG ỨNG DỤNG AJAX
4.1.1 Trang của ban quản trị
Khi dùng AJAX thì tại trang đổi mật khẩu của Ban quản trị, nhập mật khẩu cũ vào thì Ajax sẽ giúp kiểm tra mật khẩu cũ mà admin nhập vào, bằng cách trao đổi dữ liệu với web server, không có nạp lại trang.
Hình 4.1 Màn hình thay đổi mật khẩu.
Thông tin đầu vào:
- Mật khẩu cũ, mật khẩu mới, xác nhận mật khẩu mới.
Thông tin đầu ra:
- Hiện thông báo lỗi nếu thông tin điền vào không đầy đủ hoặc không hợp lệ. - Hiện thông báo đổi mật khẩu thành công nếu thông tin đầu vào đầy đủ và
hợp lệ.
Kiểm tra hợp lệ:
- Mật khẩu cũ, mật khẩu mới, xác nhận mật khẩu không được để trống và phải có từ 6 đến 24 ký tự. Xác nhận mật khẩu phải giống với mật khẩu mới.
4.1.2 Trang khi xác lập lại mật khẩu cho quản trị khác
Tại trang xác nhập lại mật khẩu cho quản trị khác, khi admin nhấn vào nút xác lập lại