1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn thiết kế mô hình thực thể liên kết quản lý nhạc cụ

28 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 1,44 MB

Nội dung

  BÁO CÁO BÀI TẬP LỚN Nhóm 10 Thành viên nhóm: STT HỌ TÊN Lâm Quang Trí Trần Thanh Trí MSSV CT06N0159 Lớp CT06N CHỨC VỤ Nhóm trưởng CT06N0158 CT06N Thành viên Ma Văn Tính CT06N0157 CT06N Thành viên  Nguyễn Bá Trung CT06N0160 CT06N Thành viên Phạm Huy Thuận CT06N0155 CT06N Thành viên Huỳnh Minh Thuận CT06N0156 CT06N Thành viên  Nguyễn Văn Tùng CT06N0161 CT06N Thành viên  Nguyễn Đức Quyền CT06N0151 CT06N Thành viên Dương Phúc Nghĩa CT06N0140 CT06N Thành viên Trần Thanh Vân CT06N0162 CT06N Thành viên 10   MỤ C LỤ C BÁO CÁO BÀI TẬP LỚN I - Thiết kế mơ hình thực thể liên kết quản lý nhạc cụ II - Mơ Hình ERD III - Mơ Hình Quan Hệ IV - Đặc Tả .6 V- T-SQL Tạo sở liệu Tạo bảng View .9 Thủ Tục Hàm .20 Trigger 21 Tạo phân quyền cho User Role .22 VI – Cơ sơ liêu phi quan hệ - NoSQL (MongoDB) .24   I - Thiết kế mơ hình thực thể liên kết quản lý nhạc cụ Mơ hình thực thể liên kết quản lý nhạc cụ hệ thống quản lý thông tin liên quan đến việc mua bán sửa chữa bảo trì loại nhạc cụ Chức mơ hình bao gồm: Quản lý thơng tin khách hàng: Mơ hình cho phép quản lý thơng tin khách hàng bao gồm tên địa số điện thoại email lịch sử mua hàng khách hàng Quản lý thơng tin sản phẩm: Mơ hình cho phép quản lý thông tin loại nhạc cụ bao gồm tên mô tả giá số lượng thông tin nhà sản xuất Quản lý đơn hàng: Mơ hình cho phép quản lý đơn hàng khách hàng bao gồm thông tin sản phẩm số lượng giá thông tin tốn Quản lý kho hàng: Mơ hình cho phép quản lý kho hàng bao gồm thông tin số lượng sản phẩm kho thông tin nhập kho xuất kho Quản lý nhân viên: Mơ hình cho phép quản lý thơng tin nhân viên bao gồm tên địa số điện thoại email lịch sử làm việc nhân viên Tất chức liên kết với để tạo thành hệ thống quản lý toàn diện cho việc mua bán loại nhạc cụ   II - Mơ Hình ERD   III - Mơ Hình Quan Hệ  NHACCU(MaNhacCu, TenNhacCu, LoaiNhacCu, GiaTien, SoLuongTonKho, MaNhaCungCap)  NHACUNGCAP (MaNhaCungCap, TenNhaCungCap, DiaChi, SoDienThoai )  NHANVIEN (MaNhanVien, HoTenNhanVien, ChucVu, DiaChi, SoDienThoai ) KHACHHANG (MaKhachHang, HoTenKhachHang, DiaChi, SoDienThoai ) HOADON (MaHoaDon, NgayTao, TongTien, MaNhanVien, MaKhachHang ) CHITIETHOADON (MaChiTietHoaDon, MaHoaDon, MaNhacCu, SoLuong, DonGia )   IV - Đặ  c Tặ     V- T-SQL Tạo sở liệu USE master CREATE DATABASE Nhom10 GO Tạo bảng USE Nhom10 GO CREATE TABLE NhaCungCap(   MaNhaCungCap INT PRIMARY KEY NOT NULL IDENTITY(1,1),   TenNhaCungCap VARCHAR(250) NOT NULL,   DiaChi TEXT NULL,   SoDienThoai CHAR(15) DEFAULT NULL ) GO CREATE TABLE KhachHang(   MaKhachHang INT PRIMARY KEY NOT NULL IDENTITY(1,1),   HoKhachHang VARCHAR(50) NULL,   TenKhachHang VARCHAR(50) NOT NULL DEFAULT 'Khách vãng lai',   DiaChi TEXT NULL,   SoDienThoai CHAR(15) DEFAULT NULL ) GO CREATE TABLE NhanVien(   MaNhanVien INT PRIMARY KEY NOT NULL IDENTITY(1,1),   HoNhanVien VARCHAR(50) NOT NULL,   TenNhanVien VARCHAR(50) NOT NULL,   DiaChi TEXT NULL,   SoDienThoai CHAR(15) DEFAULT NULL,   ChucVu VARCHAR(20) )   GO CREATE TABLE NhacCu(   MaNhacCu INT PRIMARY KEY NOT NULL IDENTITY(1,1),   MaNhaCungCap INT,   TenNhacCu VARCHAR(100) NOT NULL,   LoaiNhacCu VARCHAR(100) NOT NULL,   GiaTien INT DEFAULT 0 NOT NULL,   SoLuongTonKho INT DEFAULT 0,   FOREIGN KEY (MaNhaCungCap) REFERENCES NhaCungCap(MaNhaCungCap) ) GO CREATE TABLE HoaDon(   MaHoaDon INT PRIMARY KEY NOT NULL IDENTITY(1,1),   MaNhanVien INT,   MaKhachHang INT,   TongTien INT DEFAULT 0,   NgayTao DATE   FOREIGN KEY (MaNhanVien) REFERENCES NhanVien(MaNhanVien),   FOREIGN KEY (MaKhachHang) REFERENCES KhachHang(MaKhachHang) ) GO CREATE TABLE ChiTietHoaDon(   MaChiTietHoaDon INT PRIMARY KEY NOT NULL IDENTITY(1,1),   MaHoaDon INT,   MaNhacCu INT,   SoLuong INT DEFAULT 0,   DonGia INT DEFAULT 0,   FOREIGN KEY (MaHoaDon) REFERENCES HoaDon(MaHoaDon),   FOREIGN KEY (MaNhacCu) REFERENCES NhacCu(MaNhacCu) ) GO     View CREATE VIEW DSNhaCungCap AS   SELECT TenNhaCungCap AS [Tên nhà cung cấp], DiaChi AS [Địa chỉ], SoDienThoai AS [Số điện thoại] FROM NhaCungCap GO CREATE VIEW DSThanhVien AS   SELECT concat_ws(' ', HoKhachHang, TenKhachHang) AS [Họ tên], DiaChi AS [Địa chỉ], SoDienThoai AS [SoDienThoai] FROM KhachHang   WHERE SoDienThoai IS NOT NULL OR DiaChi IS NOT NULL   WITH CHECK OPTION GO CREATE VIEW DSNhanVien AS   SELECT concat_ws(' ', HoNhanVien, TenNhanVien) AS [Họ tên], DiaChi AS [Địa chỉ],  SoDienThoai AS [Số điện thoại], ChucVu AS [Chức vụ] FROM NhanVien GO CREATE VIEW DSNhacCu AS   SELECT NhacCu.TenNhacCu AS [Tên nhạc cụ], NhaCungCap.TenNhaCungCap AS [Tên nhà cung cấp], NhacCu.LoaiNhacCu AS [Loại nhạc cụ], NhacCu.GiaTien AS [Giá tiền],  NhacCu.SoLuongTonKho AS [Số lượng tồn kho]   FROM NhacCu INNER JOIN NhaCungCap ON NhacCu.MaNhaCungCap = NhaCungCap.MaNhaCungCap GO Thủ Tục CREATE PROC ThemNhaCungCap(   @TenNhaCungCap VARCHAR(250),   @DiaChi TEXT,   @SoDienThoai CHAR(15) ) AS 10   ) AS BEGIN   DELETE FROM HoaDon WHERE MaHoaDon = @MaHoaDon END GO CREATE PROC XoaChiTietHoaDon(   @MaChiTietHoaDon INT ) AS BEGIN   DELETE FROM ChiTietHoaDon WHERE  MaChiTietHoaDon = @MaChiTietHoaDon END GO CREATE PROC SuaNhaCungCap(   @MaNhaCungCap INT,   @TenNhaCungCap VARCHAR(250),   @DiaChi TEXT,   @SoDienThoai CHAR(15) ) AS BEGIN   UPDATE NhaCungCap SET TenNhaCungCap = @TenNhaCungCap, DiaChi = @DiaChi, SoDienThoai = @SoDienThoai WHERE MaNhaCungCap = @MaNhaCungCap END GO CREATE PROC SuaKhachHang(   @MaKhachHang INT,   @HoKhachHang VARCHAR(50),   @TenKhachHang VARCHAR(50),   @DiaChi TEXT,   @SoDienThoai CHAR(15) ) 14   AS BEGIN   UPDATE KhachHang SET HoKhachHang = @HoKhachHang, TenKhachHang = @TenKhachHang, DiaChi = @DiaChi, SoDienThoai = @SoDienThoai WHERE MaKhachHang = @MaKhachHang END GO CREATE PROC SuaNhanVien(   @MaNhanVien INT,   @HoNhanVien VARCHAR(50),   @TenNhanVien VARCHAR(50),   @DiaChi TEXT,   @SoDienThoai CHAR(15),   @ChucVu VARCHAR(20) ) AS BEGIN   UPDATE NhanVien SET HoNhanVien = @HoNhanVien, TenNhanVien = @TenNhanVien, DiaChi =  @DiaChi, SoDienThoai = @SoDienThoai, ChucVu = @ChucVu WHERE MaNhanVien = @MaNhanVien END GO CREATE PROC SuaNhacCu(   @MaNhacCu INT,   @MaNhaCungCap INT,   @TenNhacCu VARCHAR(100),   @LoaiNhacCu VARCHAR(100),   @GiaTien INT,   @SoLuongTonKho INT ) AS BEGIN   UPDATE NhacCu SET MaNhaCungCap = @MaNhaCungCap, TenNhacCu = @TenNhacCu, LoaiNhacCu =  @LoaiNhacCu, GiaTien = @GiaTien, SoLuongTonKho = @SoLuongTonKho WHERE MaNhacCu =  @MaNhacCu END 15   GO CREATE PROC SuaHoaDon(   @MaHoaDon INT,   @MaNhanVien INT,   @MaKhachHang INT,   @TongTien INT,   @NgayTao DATE ) AS BEGIN   UPDATE HoaDon SET MaNhanVien = @MaNhanVien, MaKhachHang = @MaKhachHang, TongTien =  @TongTien, NgayTao = @NgayTao WHERE MaHoaDon = @MaHoaDon END GO CREATE PROC SuaChiTietHoaDon(   @MaChiTietHoaDon INT,   @MaHoaDon INT,   @MaNhacCu INT,   @SoLuong INT,   @DonGia INT ) AS BEGIN   UPDATE ChiTietHoaDon SET MaHoaDon = @MaHoaDon, MaNhacCu = @MaNhacCu, SoLuong =  @SoLuong, DonGia = @DonGia WHERE MaChiTietHoaDon =  @MaChiTietHoaDon END GO CREATE PROC  TimNhaCungCapTheoMa(   @MaNhaCungCap INT ) AS BEGIN   SELECT * FROM NhaCungCap WHERE MaNhaCungCap = @MaNhaCungCap 16   END GO CREATE PROC  TimKhachHangTheoMa(   @MaKhachHang INT ) AS BEGIN   SELECT * FROM KhachHang WHERE MaKhachHang = @MaKhachHang END GO CREATE PROC TimNhanVienTheoMa(   @MaNhanVien INT ) AS BEGIN   SELECT * FROM NhanVien WHERE MaNhanVien = @MaNhanVien END GO CREATE PROC TimNhacCuTheoMa(   @MaNhacCu INT ) AS BEGIN   SELECT * FROM NhacCu WHERE MaNhacCu = @MaNhacCu END GO CREATE PROC TimHoaDonTheoMa(   @MaHoaDon INT ) AS BEGIN   SELECT * FROM HoaDon WHERE MaHoaDon = @MaHoaDon 17   END GO CREATE PROC  TimChiTietHoaDonTheoMa(   @MaChiTietHoaDon INT ) AS BEGIN   SELECT * FROM ChiTietHoaDon WHERE MaChiTietHoaDon =  @MaChiTietHoaDon END GO CREATE PROC  TimNhaCungCapTheoTen(   @TenNhaCungCap VARCHAR(250) ) AS BEGIN   SELECT * FROM NhaCungCap WHERE TenNhaCungCap LIKE '%' + @TenNhaCungCap + '%' END GO CREATE PROC  TimKhachHangTheoTen(   @TenKhachHang VARCHAR(50) ) AS BEGIN   SELECT * FROM KhachHang WHERE TenKhachHang LIKE '%' + @TenKhachHang + '%' END GO CREATE PROC  TimNhanVienTheoTen(   @TenNhanVien VARCHAR(50) ) AS BEGIN   SELECT * FROM NhanVien WHERE TenNhanVien LIKE '%' + @TenNhanVien + '%' 18   END GO CREATE PROC TimNhacCuTheoTen(   @TenNhacCu VARCHAR(100) ) AS BEGIN   SELECT * FROM NhacCu WHERE TenNhacCu LIKE '%' + @TenNhacCu + '%' END GO CREATE PROC TimHoaDonTheoTen(   @TenKhachHang VARCHAR(50) ) AS BEGIN   SELECT * FROM HoaDon WHERE MaKhachHang IN (SELECT MaKhachHang FROM KhachHang WHERE  TenKhachHang LIKE '%' + @TenKhachHang + '%') END GO CREATE PROC  TimChiTietHoaDonTheoTen(   @TenNhacCu VARCHAR(100) ) AS BEGIN   SELECT * FROM ChiTietHoaDon WHERE MaNhacCu IN (SELECT MaNhacCu FROM NhacCu WHERE  TenNhacCu LIKE '%' + @TenNhacCu + '%') END GO CREATE PROC  TimNhaCungCapTheoSDT(   @SoDienThoai CHAR(15) ) AS BEGIN 19     SELECT * FROM NhaCungCap WHERE SoDienThoai LIKE '%' + @SoDienThoai + '%' END GO CREATE PROC  TimKhachHangTheoSDT(   @SoDienThoai CHAR(15) ) AS BEGIN   SELECT * FROM KhachHang WHERE SoDienThoai LIKE '%' + @SoDienThoai + '%' END GO CREATE PROC  TimNhanVienTheoSDT(   @SoDienThoai CHAR(15) ) AS BEGIN   SELECT * FROM NhanVien WHERE SoDienThoai LIKE '%' + @SoDienThoai + '%' END GO CREATE PROC TonKho AS BEGIN   SELECT * FROM NhacCu WHERE SoLuongTonKho > 0 END GO 20   Hàm CREATE FUNCTION TongTienHoaDon(@MaHoaDon INT) RETURNS INT AS BEGIN   DECLARE @TongTien INT   SELECT @TongTien = SUM(SoLuong * DonGia) FROM ChiTietHoaDon WHERE MaHoaDon =  @MaHoaDon   RETURN @TongTien END GO CREATE FUNCTION DoanhThuTheoNgay(@NgayTao DATE) RETURNS INT AS BEGIN   DECLARE @TongTien INT   SELECT @TongTien = SUM(SoLuong * DonGia) FROM ChiTietHoaDon WHERE MaHoaDon IN (SELECT MaHoaDon FROM HoaDon WHERE NgayTao = @NgayTao)   RETURN @TongTien END GO CREATE FUNCTION DoanhThuTheoThang(@Thang INT, @Nam INT) RETURNS INT AS BEGIN   DECLARE @TongTien INT   SELECT @TongTien = SUM(SoLuong * DonGia) FROM ChiTietHoaDon WHERE MaHoaDon IN (SELECT MaHoaDon FROM HoaDon WHERE MONTH(NgayTao) = @Thang AND YEAR(NgayTao) = @Nam)   RETURN @TongTien END GO CREATE FUNCTION DoanhThuTheoNam(@Nam INT) RETURNS INT 21   AS BEGIN   DECLARE @TongTien INT   SELECT @TongTien = SUM(SoLuong * DonGia) FROM ChiTietHoaDon WHERE MaHoaDon IN (SELECT MaHoaDon FROM HoaDon WHERE YEAR(NgayTao) = @Nam)   RETURN @TongTien END GO CREATE FUNCTION  DoanhThuTheoNhanVien(@MaNhanVien INT) RETURNS INT AS BEGIN   DECLARE @TongTien INT   SELECT @TongTien = SUM(SoLuong * DonGia) FROM ChiTietHoaDon WHERE MaHoaDon IN (SELECT MaHoaDon FROM HoaDon WHERE MaNhanVien = @MaNhanVien)   RETURN @TongTien END GO Trigger CREATE TRIGGER GiamTonKho ON ChiTietHoaDon FOR INSERT AS   DECLARE @D INT   SELECT @D = COUNT(*) FROM NhacCu JOIN INSERTED ON NhacCu.MaNhacCu = INSERTED.MaNhacCu WHERE SoLuongTonKho  0   BEGIN   PRINT('Số lượng tồn kho không đủ')   ROLLBACK TRANSACTION   RETURN   END 22     UPDATE NhacCu SET SoLuongTonKho -= SoLuong FROM INSERTED WHERE INSERTED.MaNhacCu =  NhacCu.MaNhacCu GO CREATE TRIGGER TangTonKho ON ChiTietHoaDon FOR DELETE AS   UPDATE NhacCu SET SoLuongTonKho = SoLuongTonKho + SoLuong FROM DELETED WHERE  DELETED.MaNhacCu = NhacCu.MaNhacCu GO CREATE TRIGGER SuaTonKho ON ChiTietHoaDon FOR UPDATE AS   DECLARE @D INT   SELECT @D = COUNT(*) FROM NhacCu JOIN INSERTED ON NhacCu.MaNhacCu = INSERTED.MaNhacCu WHERE SoLuongTonKho  0   BEGIN   PRINT('Số lượng tồn kho không đủ')   ROLLBACK TRANSACTION   RETURN   END   UPDATE NhacCu SET SoLuongTonKho = SoLuongTonKho + (SELECT SoLuong FROM DELETED WHERE  DELETED.MaNhacCu = NhacCu.MaNhacCu) - SoLuong FROM INSERTED WHERE INSERTED.MaNhacCu =  NhacCu.MaNhacCu GO Tạo phân quyền cho User Role USE Nhom10 GO CREATE ROLE HR AUTHORIZATION  db_datawriter GO CREATE ROLE BanHang AUTHORIZATION db_datawriter GO CREATE ROLE Kho AUTHORIZATION db_datawriter GO GRANT SELECT, INSERT, UPDATE ON NhanVien TO HR GO GRANT INSERT, UPDATE ON KhachHang TO BanHang GO GRANT SELECT ON DSThanhVien TO BanHang GO 23   GRANT SELECT ON DSNhacCu TO BanHang GO GRANT SELECT, INSERT, UPDATE ON HoaDon TO BanHang GO GRANT SELECT, INSERT, UPDATE ON ChiTietHoaDon TO BanHang GO GRANT SELECT, INSERT, UPDATE ON NhacCu TO Kho GO GRANT SELECT, INSERT, UPDATE ON NhaCungCap TO Kho GO GRANT SELECT ON DSNhaCungCap TO Kho GO USE master GO CREATE LOGIN hr1 WITH PASSWORD=N'123', DEFAULT_DATABASE =[Nhom10], CHECK_EXPIRATION =OFF,  CHECK_POLICY=OFF GO CREATE LOGIN hr2 WITH PASSWORD=N'123', DEFAULT_DATABASE =[Nhom10], CHECK_EXPIRATION =OFF,  CHECK_POLICY=OFF GO CREATE LOGIN nv1 WITH PASSWORD=N'123', DEFAULT_DATABASE =[Nhom10], CHECK_EXPIRATION =OFF,  CHECK_POLICY=OFF GO CREATE LOGIN nv2 WITH PASSWORD=N'123', DEFAULT_DATABASE =[Nhom10], CHECK_EXPIRATION =OFF,  CHECK_POLICY=OFF GO CREATE LOGIN kho1 WITH PASSWORD=N'123', DEFAULT_DATABASE =[Nhom10], CHECK_EXPIRATION =OFF,  CHECK_POLICY=OFF GO CREATE LOGIN kho2 WITH PASSWORD=N'123', DEFAULT_DATABASE =[Nhom10], CHECK_EXPIRATION =OFF,  CHECK_POLICY=OFF GO USE Nhom10 GO CREATE USER hr1 FOR LOGIN hr1 GO CREATE USER hr2 FOR LOGIN hr2 GO CREATE USER nv1 FOR LOGIN nv1 GO CREATE USER nv2 FOR LOGIN nv2 GO CREATE USER kho1 FOR LOGIN kho1 GO CREATE USER kho2 FOR LOGIN kho2 GO ALTER ROLE HR ADD MEMBER hr1 GO ALTER ROLE HR ADD MEMBER hr2 GO ALTER ROLE BanHang ADD MEMBER nv1 GO ALTER ROLE BanHang ADD MEMBER nv2 GO ALTER ROLE Kho ADD MEMBER kho1 GO ALTER ROLE Kho ADD MEMBER kho2 GO 24   VI – Cơ sơ dữ liêu phi quặn hê  - NoSQL (MongoDB) use('Nhom10') db.createCollection('KhachHang',{   validator: {   $jsonSchema: {   bsonType: "object",   title: "KhachHang",   properties: {   MaKH: {   bsonType: "int",   description: "must be a number and is required"   },   HoKH: {   bsonType: "string",   description: "must be a string and is required"   },   TenKH: {   bsonType: "string",   description: "must be a string and is required"   },   DiaChi: {   bsonType: "string",   description: "must be a string and is required"   },   SoDienThoai: {   bsonType: "int",   minimum: 0,   maximum: 9999999999,   description: "must be a number and is required"   }   }   }   } }) db.createCollection('NhanVien',{   validator: {   $jsonSchema: {   bsonType: "object",   title: "NhanVien",   properties: {   MaNV: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   HoNV: {   bsonType: "string",   description: "must be a string and is required"   },   TenNV: {   bsonType: "string",   description: "must be a string and is required"   },   DiaChi: {   bsonType: "string",   description: "must be a string and is required" 25     },   SoDienThoai: {   bsonType: "int",   minimum: 0,   maximum: 9999999999,   description: "must be a number and is required"   },   ChucVu: {   bsonType: "string",   description: "must be a string and is required"   }   }   }   } }) db.Nhom10.createCollection("NhaCungCap", {   validator: {   $jsonSchema: {   bsonType: "object",   title: "NhaCungCap",   properties: {   MaNCC: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   TenNCC: {   bsonType: "string",   description: "must be a string and is required"   },   DiaChi: {   bsonType: "string",   description: "must be a string and is required"   },   SoDienThoai: {   bsonType: "int",   minimum: 0,   maximum: 9999999999,   description: "must be a number and is required"   }   }   }   } }) db.Nhom10.createCollection("NhacCu", {   validator: {   $jsonSchema: {   bsonType: "object",   title: "NhacCu",   properties: {   MaNC: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   MaNCC: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required" 26     },   TenNC: {   bsonType: "string",   description: "must be a string and is required"   },   LoaiNC: {   bsonType: "string",   description: "must be a string and is required"   },   GiaTien: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   SoLuongTonKho: {   bsonType: "int",   minimum: 0,   description: "must be a number and is required"   }   }   }   } }) db.Nhom10.createCollection("HoaDon", {   validator: {   $jsonSchema: {   bsonType: "object",   title: "HoaDon",   properties: {   MaHD: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   MaNV: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   MaKH: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   TongTien: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   NgayTao: {   bsonType: "date",   description: "must be a date and is required"  }   }   }   } }) db.Nhom10.createCollection("ChiTietHoaDon", {   validator: { 27     $jsonSchema: {   bsonType: "object",   title: "ChiTietHoaDon",   properties: {   MaCTHD: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   MaHD: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   MaNC: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   SoLuong: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   },   DonGia: {   bsonType: "int",   minimum: 1,   description: "must be a number and is required"   }   }   }   } }) 28

Ngày đăng: 18/05/2023, 05:54

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w