Thiết kế lớp (chuyển đổi từ sơ đồ lớp mức phân tích sang mức thiết kế)

Một phần của tài liệu Hệ thống thông tin quản lý khách sạn (Trang 123 - 137)

8. Usecase quản lý thanh toán

3.3.1.Thiết kế lớp (chuyển đổi từ sơ đồ lớp mức phân tích sang mức thiết kế)

3.3.2 Thiết kế CSDL (chuyển đổi CSDL từ mức quan niệm sang mức vật lý) 3.3.2.1. Sơ đồ CSDL mức quan niệm

3.3.2.2. Sơ đồ CSDL mức vật lý

3.3.2.3. Mô tả CSDL

- Mô tả các quan hệ_RD

PHONG (MaPhong, TenPhong, MaLoaiPhong, Gia, TrangThai, SoNguoiToiDa, DienTich, GhiChu)

LOAIPHONG (MaLoaiPhong, TenLoaiPhong, MoTa)

VATTUPHONG (MaVatTu, TenVatTu, MaLoaiPhong, Gia, DonViTinh, SoLuong, GhiChu)

TAIKHOAN (TenTK, MatKhau, MaNV, BoPhan, Quyen)

NHANVIEN (MaNV, TenNV, GioiTinh, NgaySinh, DiaChi, SDT, Email, NgayVaoLam, BoPhan, GhiChu)

PHIEUDATPHONG (MaDatPhong, MaKH, MaPhong, MaNV, SLTre, SLNguoi, TrangThai, LoaiThue, GhiChu)

PHANLOAIDICHVU (MaLoaiDV, TenLoaiDV, MoTa, MaDV)

DICHVU (MaDV,TenDV, Gia, DonViTinh, Soluongkho, MoTa)

PHIEUDV (MaHD_DV, MaPhong, MaDatPhong, MaDV, Gia, SoLuong, ThoiGianDangKySuDung, TongTien)

HOADON(MaHoaDon, MaNhanVien, MaKhachHang, NgayNhanPhong, NgayTraPhong, TienPhong, TienDichVu, DonGia)

THONGTINKH(MaKhachHang, HotenKH, Ngaysinh, GioiTinh, CMND, Diachi, Sdt, Email, QuocTich)

- Mã nguồn

--Tạo bảng ‘Quản Lý Khách Sạn’ create database QuanLyKhachSan go

use QuanLyKhachSan go

--Tạo bảng "Loại Phòng" create table LOAIPHONG

(

MaLoaiPhong char(20) primary key,

TenLoaiPhong char(20) not null,

MoTa string null,

)

go

--Tạo bảng "Phòng" create table PHONG

(

MaPhong char(20) primary key,

TenPhong char(20) not null,

Gia int not null,

TrangThai varchar(20)not null, (adsbygoogle = window.adsbygoogle || []).push({});

SoNguoiToiDa int not null,

DienTich float not null,

GhiChu string null,

foreign key(MaLoaiPhong) references LOAIPHONG(MaLoaiPhong)

)

go

--Tạo bảng "Vật Tư Phòng" create table VATTUPHONG

(

MaVatTu char(20) primary key,

TenVatTu char(20) not null,

MaLoaiPhong char(20)not null,

Gia int not null,

DonViTinh char(20)not null,

SoLuong int not null,

GhiChu string null,

foreign key(MaLoaiPhong) references LOAIPHONG(MaLoaiPhong)

)

go

--Tạo bảng “Tài khoản”

create table TAIKHOAN (

TenTK char(20) primary key, MatKhau char(20) not null,

MaNV char(20) not null,

BoPhan char(50) not null,

Quyen char(20) not null,

)go go

--Tạo bảng “Nhân viên”

create table NHANVIEN (

MaNV char(20) primary key, TenNV char(20) not null, GioiTinh bitnot null, NgaySinh datenot null, DiaChi varchar (50) not null, SDT varchar (20) not null,

Email char(20) not null,

NgayVaoLam date not null, (adsbygoogle = window.adsbygoogle || []).push({});

BoPhan char(50) not null,

GhiChu string null

)go go

--Tạo bảng “Phiếu đặt phòng”

create table PHIEUDATPHONG (

MaDatPhong char(20) primary key, MaKH char(20) not null,

MaPhong char(20) not null,

SLTre intnot null,

SLnguoi intnot null,

TrangThai char(20) not null,

LoaiThue char(20) not null,

GhiChu string null,

foreign key (MaKH) references THONGTINKH (MaKH) )

go

--Tạo bảng ‘Dịch Vụ’

create table DichVu (

MaDV char(20)primary key,

TenDV nvarchar(50) not null,

DonViTinh char(20) not null,

SoLuongKho int not null,

MoTa stringnull

)go go

--Tạo bảng ‘Phân Loại Dịch Vụ’

createtable PhanLoaiDV (

MaLoaiDv char(20)primary key,

TenLoaiDV nvarchar(50) not null,

MaDV char(20) not null,

foreign key (MaDV)references DichVu(MaDV) )

go

--Tạo bảng ‘Phiếu Dịch Vụ’ (adsbygoogle = window.adsbygoogle || []).push({});

create table PhieuDichVu (

MaHD_DV char(20)primary key,

MaPhong char(20) not null,

MaDatPhong char(20) not null,

MaDV char(20) not null,

Gia int not null,

Soluong int not null,

ThoiGianDangKySuDung date not null,

TongTien float not null,

foreignkey(MaDV)references DichVu(MaDV) )

go

--Tạo bảng ‘Hóa Đơn’

create table HOADON (

MaHD char(20) primary key, MaHD_DV char(20) not null,

MaDatPhong char(20) not null,

MaNV char(20) not null,

MaKH char(20) not null,

NgayVao datenot null,

NgayRa date not null,

TienPhong intnot null,

TienDichVu int not null,

TongTien intnot null,

GhiChu stringnull,

foreign key(MaHoaDon) references THONGTINKH (MaKhachHang ) )

go

--Tạo bảng ‘Thông Tin Khách Hàng’ create table THONGTINKH (

MaKH char(20) primary key, TenKH char(50) not null, GioiTinh bit not null, NgaySinh date not null, Diachi varchar(20) not null,

CMND/CCCD varchar(20) not null, QuocTich varchar(20) not null SĐT char(10) not null,

E-mail varchar(50) not null, MaPhong char(20) not null,

MaNV char(20) not null, MaDV char(20) not null, GhiChu String null, (adsbygoogle = window.adsbygoogle || []).push({});

foreign key(MaKhachHang) references THONGTINKH (MaKhachHang) )

3.3.2.4. Thiết kế và mô tả các ràng buộc CSDL

Ràng buộc 1:

● Bối cảnh: NHANVIEN

● Mô tả: Mỗi nhân viên có một mã nhân viên riêng biệt không trùng với nhân viên khác

● Nội dung :

∀ nv1, nv2 ∈ NHANVIEN / nv1.MaNV <> nv2.MaNV

● Tầm ảnh hưởng

Quan hệ Thêm Xóa Sửa

NHANVIEN + - *(MaNV)

Ràng buộc 2:

● Bối cảnh: TAIKHOAN

● Mô tả: Mỗi tài khoản có một tên tài khoản và mã nhân viên riêng biệt không trùng với các tài khoản khác

● Nội dung :

∀ tk1, tk2 ∈ TAIKHOAN / tk1.TenTK <> tk2.TenTK ∀ tk1, tk2 ∈ TAIKHOAN / tk1.MaNV <> tk2.MaNV

● Tầm ảnh hưởng

Quan hệ Thêm Xóa Sửa

TAIKHOAN + - *(TenTK)

TAIKHOAN + - +(MaNV)

Ràng buộc 3 :

● Bối cảnh: TAIKHOAN, NHANVIEN

● Mô tả: Mỗi tài khoản chỉ thuộc về một nhân viên, nhân viên chỉ có một tài khoản

● Nội dung :

∀ tk ∈ TAIKHOAN, ∃ nv ∈ NHANVIEN / tk.MaNV = nv.MaNV

Quan hệ Thêm Xóa Sửa

TAIKHOAN + - +(MaNV)

NHANVIEN + - *

Ràng buộc 4:

▪ Bối cảnh: LOAIDICHVU

▪ Mô tả: Hai loại dịch vụ khác nhau sẽ có hai mã loại dịch vụ khác nhau (adsbygoogle = window.adsbygoogle || []).push({});

▪ Nội dung: ∀ ldv1, ldv2 ∈ LOAIDICHVU: ldv1.MaLoaiDV <> ldv2.MaLoaiDV

▪ Tầm ảnh hưởng:

Quan hệ Thêm Xóa Sửa

LOAIDICHVU + - *(MaLoaiDichVu)

Ràng buộc 5:

▪ Bối cảnh: PHIEUDICHVU

▪ Mô tả: Hai phiếu dịch vụ khác nhau sẽ có hai mã phiếu dịch vụ khác nhau

▪ Nội dung: ∀pdv1, pdv2 ∈ PHIEUDICHVU: pdv1.MaHD_DV <> pdv2.MaHD_DV

▪ Tầm ảnh hưởng:

PHIEUDICHVU + - *(MaHD-DV)

Ràng buộc 6:

▪ Bối cảnh: PHIEUDICHVU, PHIEUDATPHONG

▪ Mô tả: Mỗi phiếu dịch vụ chỉ thuộc về mỗi phiếu đặt phòng.

▪ Nội dung: ∀pdv ∈ PHIEUDICHVU, ∃pdp ∈ PHIEUDATPHONG :pdv.MaHD_DV = pdp.MaDatPhong

▪ Tầm ảnh hưởng:

Quan hệ Thêm Xóa Sửa

PHIEUDICHVU + - *(MaHD_DV)

PHIEUDATPHONG + + *(MaDatPhong)

Ràng buộc 7

● Bối cảnh: VATTUPHONG, PHONG

● Mô tả: Một phòng có thể có nhiều vật tư phòng, ngược lại mỗi mã vật tư phòng chỉ có trong một phòng

● Nội dung:∀plvtp ∈ VATTUPHONG , ∃pp ∈ PHONG :plvtp.MaVatTuPhong = pp.MaPhong

Quan hệ Thêm Xoá Sửa

VATTUPHONG - - *(MaVatTuPhong)

PHONG + + *(MaPhong)

Ràng buộc 8

Bối cảnh: PHIEU DAT PHONG, PHONG

phiếu đặt phòng

Nội dung:∀plpdt ∈ PHIEUDATPHONG , ∃pp ∈ PHONG

:plpdt.MaPhieuDatPhong= pp.MaPhong (adsbygoogle = window.adsbygoogle || []).push({});

Quan hệ Thêm Xoá Sửa

PHIEUDATPHONG - + *(MaPhieuDatPhong)

Ràng buộc 11

● Bối cảnh: THONGTINKH

● Mô tả: Mỗi khách hàng sẽ có một mã khách hàng khác nhau ● Nội dung: ∀kh1, kh2 ∈ THONGTINKH/

kh1.MaKH <> kh2.MaKH

∀kh1, kh2 ∈ THONGTINKH/

kh1.TenKH <> kh2.TenKH ● Tầm ảnh hưởng:

Quan hệ Thêm Xoá Sửa

THONGTINKH + - *(MaKH)

THONGTINKH + - *(TenKH)

Ràng buộc 12

● Bối cảnh: DICHVU

● Mô tả: Các dịch vụ khác nhau có mã dịch vụ khác nhau

● Nội dung: ∀ d1, d2 ∈ DICHVU / d1.DICHVU <> d2.DICHVU

● Tầm ảnh hưởng: Quan hệ T hêm X óa Sửa DICHVU + - *(MaD ichVu) Ràng buộc 13 - Bối cảnh: HOADON

Một phần của tài liệu Hệ thống thông tin quản lý khách sạn (Trang 123 - 137)