-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmedical_table.spsql
More file actions
169 lines (158 loc) · 6.04 KB
/
medical_table.spsql
File metadata and controls
169 lines (158 loc) · 6.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
--[1] Chi nhánh
CREATE TABLE ChiNhanh (
MaChiNhanh SERIAL PRIMARY KEY, -- Sử dụng SERIAL để tự động tăng giá trị
MaNhanVienQuanLy INT, -- Mã nhân viên quản lý
SoLuongSanPham INT, -- Số lượng sản phẩm
SoLuongDanhMucSanPham INT, -- Số lượng danh mục sản phẩm
SoLuongNhanVien INT, -- Số lượng nhân viên
DiaChi VARCHAR(100) NOT NULL, -- Địa chỉ (VARCHAR thay cho NVARCHAR)
TenChiNhanh VARCHAR(100) NOT NULL -- Tên chi nhánh
);
-- [2] Bảng nhân viên
CREATE TABLE NhanVien (
MaNhanVien SERIAL PRIMARY KEY,
TenNhanVien VARCHAR(100) NOT NULL,
NgaySinh DATE NOT NULL CHECK (NgaySinh < CURRENT_DATE),
GioiTinh CHAR(1) NOT NULL CHECK (GioiTinh IN ('M', 'F')),
Email VARCHAR(50) NOT NULL,
SoDienThoai CHAR(11) NOT NULL,
KinhNghiem INT,
LuongNhanVien NUMERIC(10, 2),
MaChiNhanh INT,
LoaiNV SMALLINT CHECK (LoaiNV IN (0, 1)),
ChungChi VARCHAR(255),
ChuyenMon VARCHAR(15),
GiayPhepHanhNghe VARCHAR(8),
TrinhDo VARCHAR(1),
TinhTrang VARCHAR(99) CHECK (TinhTrang IN ('Đã nghỉ việc', 'Đang làm việc')),
CONSTRAINT fk_nhanvien_chinhanh FOREIGN KEY (MaChiNhanh) REFERENCES ChiNhanh(MaChiNhanh)
);
-- [3] Người phụ thuộc
CREATE TABLE NguoiPhuThuoc (
MaNguoiPhuThuoc SERIAL PRIMARY KEY,
MaNhanVien INT NOT NULL,
TenNguoiPhuThuoc VARCHAR(100) NOT NULL,
NgaySinh DATE NOT NULL CHECK (NgaySinh < CURRENT_DATE),
GioiTinh CHAR(1) CHECK (GioiTinh IN ('M', 'F')),
MoiQuanHe VARCHAR(99) CHECK (MoiQuanHe IN ('Anh', 'Chị', 'Em', 'Cha', 'Mẹ', 'Con')),
CONSTRAINT fk_nguoiphuthuoc_nhanvien FOREIGN KEY (MaNhanVien) REFERENCES NhanVien(MaNhanVien)
);
-- [4] Khuyến mãi
CREATE TABLE KhuyenMai (
MaKhuyenMai VARCHAR(20) PRIMARY KEY,
MaChiNhanh INT NOT NULL,
CONSTRAINT fk_khuyenmai_chinhanh FOREIGN KEY (MaChiNhanh) REFERENCES ChiNhanh(MaChiNhanh)
);
-- [5] Chương trình khuyến mãi
CREATE TABLE ChuongTrinhKhuyenMai (
MaKhuyenMai VARCHAR(20) PRIMARY KEY,
NgayBatDau DATE,
NgayKetThuc DATE,
MoTa VARCHAR(255),
LoaiGiam VARCHAR(10) CHECK (LoaiGiam IN ('Phần trăm', 'Số tiền')),
GiaTriGiam NUMERIC(10, 2)
);
-- [6] Nhà cung cấp
CREATE TABLE NhaCungCap (
MaNhaCungCap VARCHAR(10) PRIMARY KEY,
TenNhaCungCap VARCHAR(50) NOT NULL,
DiaChi VARCHAR(100) NOT NULL
);
-- [7] Danh mục sản phẩm
CREATE TABLE DanhMucSanPham (
MaSanPham VARCHAR(10) PRIMARY KEY,
TenSanPham VARCHAR(50) NOT NULL,
DonViNhoNhat VARCHAR(20) NOT NULL,
MaNhaCungCap VARCHAR(10),
SoLuong INT,
GiaBan NUMERIC(10, 2),
MaChiNhanh INT,
CONSTRAINT fk_danhmucsanpham_chinhanh FOREIGN KEY (MaChiNhanh) REFERENCES ChiNhanh(MaChiNhanh),
CONSTRAINT fk_danhmucsanpham_nhacungcap FOREIGN KEY (MaNhaCungCap) REFERENCES NhaCungCap(MaNhaCungCap)
);
--[8] Bán
CREATE TABLE Ban (
MaSanPham VARCHAR(10),
MaChiNhanh INT,
CONSTRAINT fk_ban_masanpham FOREIGN KEY (MaSanPham) REFERENCES DanhMucSanPham(MaSanPham),
CONSTRAINT fk_ban_machinhanh FOREIGN KEY (MaChiNhanh) REFERENCES ChiNhanh(MaChiNhanh),
PRIMARY KEY (MaSanPham, MaChiNhanh)
);
--[9] Khách hàng
CREATE TABLE KhachHang (
MaKhachHang VARCHAR(10) PRIMARY KEY,
TenKhachHang VARCHAR(100) NOT NULL,
SoNha VARCHAR(100),
TenDuong VARCHAR(100),
Tinh VARCHAR(100) NOT NULL,
SoDienThoai VARCHAR(11),
MaGioiThieu VARCHAR(11),
DiemTichLuy INT
);
--[10] Khách hàng SDT
CREATE TABLE KhachHangSDT (
MaKhachHang VARCHAR(10),
SoDienThoai VARCHAR(11),
CONSTRAINT fk_khachhangsdt_makh FOREIGN KEY (MaKhachHang) REFERENCES KhachHang(MaKhachHang),
PRIMARY KEY (MaKhachHang, SoDienThoai)
);
--[11] Đơn hàng
CREATE TABLE DonHang (
MaDonHang VARCHAR(10) PRIMARY KEY,
ToaThuoc VARCHAR(255),
TienThuoc NUMERIC(10, 2),
Ngay DATE,
NhanXet VARCHAR(500),
MaKhachHang VARCHAR(10),
MaNhanVien INT,
TrangThaiDonHang VARCHAR(99) NOT NULL CHECK (TrangThaiDonHang IN ('Chưa thanh toán', 'Đã thanh toán')),
MaKhuyenMai VARCHAR(20),
CONSTRAINT fk_donhang_makh FOREIGN KEY (MaKhachHang) REFERENCES KhachHang(MaKhachHang),
CONSTRAINT fk_donhang_manv FOREIGN KEY (MaNhanVien) REFERENCES NhanVien(MaNhanVien),
CONSTRAINT fk_donhang_chuongtrinhkhuyenmai FOREIGN KEY (MaKhuyenMai) REFERENCES ChuongTrinhKhuyenMai(MaKhuyenMai)
);
--[12] Đơn vị giao hàng
CREATE TABLE DonViGiaoHang (
MaDonVi VARCHAR(10) PRIMARY KEY,
TenDonVi VARCHAR(255) NOT NULL
);
--[13] Chi tiết đơn hàng
CREATE TABLE ChiTietDonHang (
MaVanDon VARCHAR(10),
TinhTrang VARCHAR(255) NOT NULL,
DiaChiDonHang VARCHAR(255) NOT NULL,
MaDonViVanChuyen VARCHAR(10),
ChiPhiGiaoHang NUMERIC(10, 2),
MaDonHang VARCHAR(10),
CONSTRAINT fk_chitiet_donhang_don_vi_van_chuyen FOREIGN KEY (MaDonViVanChuyen) REFERENCES DonViGiaoHang(MaDonVi),
CONSTRAINT fk_chitietdonhang_donhang FOREIGN KEY (MaDonHang) REFERENCES DonHang(MaDonHang)
);
--[14] Chi tiết hoá đơn
CREATE TABLE ChiTietHoaDon (
MaHoaDon VARCHAR(10),
SoTienKhuyenMai NUMERIC(10, 2) DEFAULT 0,
ThoiGianXuatHoaDon TIMESTAMP NOT NULL,
TongTien NUMERIC(10, 2),
MaDonHang VARCHAR(10),
PRIMARY KEY (MaHoaDon, MaDonHang),
CONSTRAINT fk_hoadon_donhang FOREIGN KEY (MaDonHang) REFERENCES DonHang(MaDonHang)
);
--[15] Thanh toán
CREATE TABLE ThanhToan (
MaDonHang VARCHAR(10),
MaChiNhanh INT,
MaKhachHang VARCHAR(10),
CONSTRAINT fk_thanhtoan_ma_donhang FOREIGN KEY (MaDonHang) REFERENCES DonHang(MaDonHang),
CONSTRAINT fk_thanhtoan_ma_chinhanh FOREIGN KEY (MaChiNhanh) REFERENCES ChiNhanh(MaChiNhanh),
CONSTRAINT fk_thanhtoan_ma_khachhang FOREIGN KEY (MaKhachHang) REFERENCES KhachHang(MaKhachHang),
PRIMARY KEY (MaDonHang)
);
--[16] Bao gồm
CREATE TABLE BaoGom (
MaSanPham VARCHAR(10),
MaDonHang VARCHAR(10),
SoLuong INT,
CONSTRAINT fk_baogom_ma_sp FOREIGN KEY (MaSanPham) REFERENCES DanhMucSanPham(MaSanPham),
CONSTRAINT fk_baogom_ma_donhang FOREIGN KEY (MaDonHang) REFERENCES DonHang(MaDonHang),
PRIMARY KEY (MaSanPham, MaDonHang)
);