0
Tải bản đầy đủ (.docx) (88 trang)

Thiết kế dữ liệu

Một phần của tài liệu KHÓA LUẬN TỐT NGHIỆP ÁP DỤNG WEB SERVICES TRONG XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ (Trang 42 -42 )

CHƯƠNG 4: PHÂN TÍCH THIẾT KẾ 4.1 Phân tích yêu cầu

4.2. Thiết kế dữ liệu

4.2.1. Sơ đồ quan niệm

CHƯƠNG 4: PHÂN TÍCH THIẾT KẾ 44

4.2.2. Nội dung các bảng

tblLoaiMatHang

• MaMatHang: mã của mặt hàng, có kiểu dữ liệu là kiểu int và không cho phép NULL, đây là khóa chính của bảng.

• TenMatHang: tên của mặt hàng, có kiểu dữ liệu là kiểu nvarchar(50) và không cho phép NULL.

• MaGianHang: đây là mã gian hàng, có kiểu dữ liệu là kiểu int và không cho phép NULL.

• MoTaMatHang: mô tả chi tiết cho mặt hàng, có kiểu dữ liệu là kiểu nvarchar(1000) và cho phép NULL.

tblGianHang

• MaGianHang: mã của gian hàng, có kiểu dữ liệu là kiểu int và không cho phép NULL, đây là khóa chính của bảng.

• TenGianHang: tên của gian hàng, có kiểu dữ liệu là kiểu nvarchar(50) và không cho phép NULL.

• MoTaGianHang: mô tả chi tiết cho gian hàng, có kiểu dữ liệu nvarchar(1000) và có thể NULL.

tblSanPham_MatHang

• MaSanPham: mã của sản phẩm, có kiểu dữ liệu là kiểu int và không cho phép NULL.

• MaMatHang: mã của mặt hàng, có kiểu dữ liệu là kiểu int và không cho phép NULL.

Khóa chính của bảng là MaSanPham, MaMatHang.

tblSanPham

• MaSanPham: mã của sản phẩm, có kiểu dữ liệu là kiểu int và không cho phép NULL, đây là khóa chính của bảng.

• TenSanPham: tên của sản phẩm, có kiểu dữ liệu là kiểu nvarchar(1000) và không cho phép NULL.

• MoTaSanPham: mô tả chi tiết cho sản phẩm, có kiểu dữ liệu là kiểu nvarchar(MAX) và không cho phép NULL.

• Gia: giá tiền của sản phẩm, có kiểu dữ liệu là kiểu money và không cho phép NULL.

• Thumbnail: đường dẫn hình ảnh nhỏ của sản phẩm, có kiểu dữ liệu là kiểu nvarchar(50) và có thể NULL.

• Image: đường dẫn hình ảnh bình thường của sản phẩm, có kiểu dữ liệu là kiểu nvarchar(50) và có thể NULL.

• PromoFront:

• PromoDept:

• TacGia: tác giả của sản phẩm, có kiểu dữ liệu là kiểu nvarchar(1000) và không cho phép NULL.

• NXB: tên nhà xuất bản của sản phẩm, có kiểu dữ liệu là kiểu nvarchar(1000) và không cho phép NULL.

• NgonNgu: tên loại ngôn ngữ, có kiểu dữ liệu là nvarchar(50) và không cho phép NULL.

• Solanmua: số lẩn mua của sản phẩm, có kiểu dữ liệu là int và không cho phép NULL.

• NgayThem: ngày thêm sản phẩm vào cơ sở dữ liệu, có kiểu dữ liệu là datetime và có thể NULL.

• TenTimKiem: tên sản phẩm dùng để tìm kiếm, có kiểu dữ liệu là nvarchar(500) và có thể NULL.

tblChiTietDonDatHang

• MaDonDatHang: mã của đơn đặt hàng, có kiểu dữ liệu là uniqueidentifier và không cho phép NULL. Đây là khóa chính của bảng.

• MaSanPham: mã của sản phẩm, có kiểu dữ liệu là int và không cho phép NULL. Đây cũng là khóa chính của sản phẩm.

• TenSanPham: tên của sản phẩm, có kiểu dữ liệu là nvarchar(50) và không cho phép NULL.

CHƯƠNG 4: PHÂN TÍCH THIẾT KẾ 46

• SoLuong: số lượng sản phẩm được mua, có kiểu dữ liệu là int và không cho phép NULL.

• DonGia: đơn giá của một sản phẩm, có kiểu dữ liệu là money và không cho phép NULL.

• TongCong: tổng giá tiền của các sản phẩm được mua, có kiểu dữ liệu là money và có thể NULL.

tblDonDatHang

• MaDonDatHang: mã của đơn đặt hàng, có kiểu dữ liệu là uniqueidentifier và không cho phép NULL. Đây là khóa chính của bảng.

• NgayTao: ngày tạo đơn đặt hàng, có kiểu dữ liệu là smalldatetime và không cho phép NULL.

• NgayGiao: ngày giao sản phẩm, có kiểu dữ liệu là smalldatetime và có thể NULL.

• XacNhan: xác nhận đơn đặt hàng, có kiểu dữ liệu là bit và không cho phép NULL.

• HoanTat: hoàn tất đơn đặt hàng, có kiểu dữ liệu là bit và không cho phép NULL.

• Huy: hủy đơn đặt hàng, có kiểu dữ liệu là bit và không cho phép NULL.

• GhiChu: ghi chú cho đơn đặt hàng, có kiểu dữ liệu là nvarchar(1000) và cho phép NULL.

• TenKhachHang: tên của khách hàng đặt mua sản phẩm, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• EmailKhachHang: email của khách hàng, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• TenNguoiTT: tên của người thanh toán, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• DiaChiTT1: địa chỉ thứ nhất của người thanh toán, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• DiaChiTT2: địa chỉ thứ hai của người thanh toán, có kiểu dữ liệu là nvarchar(256) và cho phép NULL.

• DienThoaiTT: điện thoại của người thanh toán, có kiểu dữ liệu là nvarchar(128) và không cho phép NULL.

• TenNguoiNH: tên của người nhận hàng, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• DiaChiNH1: địa chỉ thứ nhất của người nhận, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• DiaChiNH2: địa chỉ thứ hai của người nhận, có kiểu dữ liệu là nvarchar(256) và cho phép NULL.

• DienThoaiNH: điện thoại của người nhận, có kiểu dữ liệu là nvarchar(128) và không cho phép NULL.

tblHoSoTaiKhoan

• MaTaiKhoan: mã tài khoản của khách hàng, có kiểu dữ liệu là uniqueidentifier và không cho phép NULL. Đây là khóa chính của bảng.

• CreditCard: thẻ thanh toán của khách hàng, có kiểu dữ liệu là ntext và cho phép NULL.

• TenNguoiTT: tên của người thanh toán, có kiểu dữ liệu là nvarchar(50) và không cho phép NULL.

• DiaChiTT1: địa chỉ thứ nhất của người thanh toán, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• DiaChiTT2: địa chỉ thứ hai của người thanh toán, có kiểu dữ liệu là nvarchar(256) và cho phép NULL.

• DienThoaiTT: điện thoại của người thanh toán, có kiểu dữ liệu là nvarchar(128) và không cho phép NULL.

• TenNguoiNH: tên của người nhận hàng, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• DiaChiNH1: địa chỉ thứ nhất của người nhận, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

CHƯƠNG 4: PHÂN TÍCH THIẾT KẾ 48

• DiaChiNH2: địa chỉ thứ hai của người nhận, có kiểu dữ liệu là nvarchar(256) và cho phép NULL.

• DienThoaiNH: điện thoại của người nhận, có kiểu dữ liệu là nvarchar(128) và không cho phép NULL.

tblTaiKhoan

• MaTaiKhoan: mã tài khoản của khách hàng, có kiểu dữ liệu là uniqueidentifier và không cho phép NULL. Đây là khóa chính của bảng.

• TaiKhoan: tên tài khoản của khách hàng, có kiểu dữ liệu là nvarchar(50) và không cho phép NULL.

• QuyenTaiKhoan: quyền của khách hàng, có kiểu dữ liệu là int và không cho phép NULL.

• MatKhau: mật khẩu của tài khoản, có kiểu dữ liệu là nvarchar(128) và không cho phép NULL.

• CauHoiBaoMat: câu hỏi bảo mật của tài khoản, có kiểu dữ liệu là nvarchar(256) và có thể NULL.

• CauTraLoi: câu trả lời cho câu hỏi bảo mật, có kiểu dữ liệu là nvarchar(128) và có thể NULL.

• Email: email kích hoạt tài khoản, có kiểu dữ liệu là nvarchar(256) và không cho phép NULL.

• DaKichHoat: tài khoản đã kích hoạt, có kiểu dữ liệu là bit và không cho phép NULL.

• DaDangXuat: tài khoản đã đăng xuất, có kiểu dữ liệu là bit và không cho phép NULL.

• NgayTao: ngày tài khoản được tạo, có kiểu dữ liệu là datetime và không cho phép NULL.

• NgayDangNhapCuoi: ngày tài khoản đăng nhập lần cuối, có kiểu dữ liệu là datetime và cho phép NULL.

• NgayDoiMatKhauCuoi: ngày tài khoản đổi mật khẩu, có kiểu dữ liệu là datetime và cho phép NULL.

• SoLanSaiMatKhau: số lần sai mật khẩu khi tài khoản đăng nhập, có kiểu dữ liệu là int và không cho phép NULL.

• NgayKhoaTaiKhoanDoSaiMatKhau: ngày tài khoản bị khóa do đăng nhập sai mật khẩu vượt quá số lần cho phép, có kiểu dữ liệu là datetime và không cho phép NULL.

4.2.3 Các ràng buộc toàn vẹn a. Ràng buộc trên nhiều bối cảnh

• RBTV1

Bối cảnh: tblLoaiMatHang, tblGianHang Điều kiện: tblGianHang.[MaGianHang]⊆tblLoaiMatHang.[MaGianHang] Tầm ảnh hưởng: T X S tblLoaiMatHang - + + tblGianHang + - + • RBTV2

Bối cảnh: tblLoaiMatHang, tblSanPham, tblSanPham_MatHang Điều kiện:

∀ loaiMatHang ∈ tblLoaiMatHang, sanpham ∈ tblSanPham, Sp_mt ∈ tblSanPham_MatHang: Sp_mt.MaSanPham = sanpham.MaSanPham ∧ Sp_mt.MaMatHang = loaiMatHang.MaMatHang Tầm ảnh hưởng: T X S tblLoaiMatHang - + + tblGianHang - + + tblSanPham_MatHang + + + • RBTV3

CHƯƠNG 4: PHÂN TÍCH THIẾT KẾ 50 Điều kiện: Sp ∈ tblSanPham, ctddh ∈ tblChiTietDonDatHang, ddh ∈ tblDonDatHang: ctddh.MaSanPham = Sp.MaSanPham ∧ ctddh.MaDonDatHang = ddh.MaDonDatHang. Tầm ảnh hưởng: T X S tblSanPham - + + tblDonDatHang - + + tblChiTietDonDatHang + + + • RBTV4

Bối cảnh: tblHoSoTaiKhoan, tblTaiKhoan

Điều kiện: hstk ∈ tblHoSoTaiKhoan, tk ∈ tblTaiKhoan: hstk.MaTaiKhoan = tk.MaTaiKhoan Tầm ảnh hưởng: T X S tblHoSoTaiKhoan + + - tblTaiKhoan + + - b. Ràng buộc liên bộ • RBTV5 Bối cảnh: tblGianHang

Điều kiện: ∀ gh1, gh2 ∈ tblGianHang, gh1 ≠ gh2: gh1.MaGianHang ≠ gh2.MaGianHang Tầm ảnh hưởng:

T X S

tblGianHang + - +

Bối cảnh: tblLoaiMatHang

Điều kiện: ∀ lmh1, lmh2 ∈ tblLoaiMatHang, lmh1 ≠ lmh2: lmh1.MaMatHang ≠ lmh2.MaMatHang Tầm ảnh hưởng: T X S tblLoaiMatHang + - + • RBTV7 Bối cảnh: tblSanPham

Điều kiện: ∀ sp1, sp2 ∈ tblSanPham, sp1 ≠ sp2: sp1.MaSanPham ≠ sp2.MaSanPham Tầm ảnh hưởng: T X S tblLoaiMatHang + - + • RBTV8 Bối cảnh: tblDonDatHang

Điều kiện: ∀ ddh1, ddh2 ∈ tblDonDatHang, ddh1 ≠ ddh2: ddh1.MaDonDatHang ≠ ddh2.MaDonDatHang Tầm ảnh hưởng: T X S tblDonDatHang + - + • RBTV9 Bối cảnh: tblTaiKhoan

Điều kiện: ∀ tk1, tk2 ∈ tblTaiKhoan, tk1 ≠ tk2: tk1.MaTaiKhoan ≠ tk2.MaTaiKhoan Tầm ảnh hưởng:

T X S

CHƯƠNG 4: PHÂN TÍCH THIẾT KẾ 52

• RBTV10

Bối cảnh: tblHoSoTaiKhoan

Điều kiện: ∀ hstk1, hstk2 ∈ tblHoSoTaiKhoan, hstk1 ≠ hstk2: hstk1.MaTaiKhoan ≠ hstk2.MaTaiKhoan Tầm ảnh hưởng:

T X S

tblHoSoTaiKhoan + - +

Một phần của tài liệu KHÓA LUẬN TỐT NGHIỆP ÁP DỤNG WEB SERVICES TRONG XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ (Trang 42 -42 )

×