Tạo bởi Trắc Nghiệm Việt|
SQL Server/MySQL

Thiết kế CSDL quản lý carteen - Khóa học SQL Server

1. Mô tả bài toán

Trung tâm Aptech xây dựng một căng-tin để phục vụ sinh viên và nhân viên. Ứng dụng cần hỗ trợ 3 loại đối tượng chính: Quản lý, Nhân viên, Phục vụ.
Các chức năng chính:

  • Quản lý sản phẩm bán trong căng-tin.

  • Tạo lập và quản lý hóa đơn bán hàng.

  • Quản lý nhân viên.

  • Thống kê sản phẩm và doanh thu.

Ứng dụng được triển khai trên SQL Server với các yêu cầu:

  • Tạo CSDL, bảng, khóa chính, khóa ngoại, unique, check.

  • Thêm, sửa, xóa dữ liệu có điều kiện.

  • Truy vấn dữ liệu.

  • Nonclustered Index.

  • View (2 câu).

  • Stored Procedure (2 câu).

  • Trigger (2 câu: update và insert).


2. Thiết kế CSDL

Bảng Staff (Nhân viên)

  • StaffID: INT, PRIMARY KEY, IDENTITY(1,1)

  • FullName: NVARCHAR(100), NOT NULL

  • Gender: CHAR(1), CHECK (Gender IN ('M','F'))

  • BirthDate: DATE, NULL

  • Phone: VARCHAR(15), UNIQUE

  • Position: NVARCHAR(50), NOT NULL

  • Salary: DECIMAL(12,2), DEFAULT 0

Bảng Customer (Khách hàng – tùy chọn)

  • CustomerID: INT, PRIMARY KEY, IDENTITY(1,1)

  • FullName: NVARCHAR(100), NOT NULL

  • Phone: VARCHAR(15), NULL

Bảng Product (Sản phẩm)

  • ProductID: INT, PRIMARY KEY, IDENTITY(1,1)

  • ProductName: NVARCHAR(100), NOT NULL

  • Unit: NVARCHAR(20), NOT NULL

  • Price: DECIMAL(12,2), CHECK (Price >= 0)

  • Quantity: INT, CHECK (Quantity >= 0)

  • Category: NVARCHAR(50), NULL

Bảng Bill (Hóa đơn)

  • BillID: INT, PRIMARY KEY, IDENTITY(1,1)

  • BillDate: DATETIME, DEFAULT GETDATE()

  • StaffID: INT, FOREIGN KEY REFERENCES Staff(StaffID)

  • CustomerID: INT, FOREIGN KEY REFERENCES Customer(CustomerID), NULL

  • TotalAmount: DECIMAL(12,2), DEFAULT 0

Bảng BillDetail (Chi tiết hóa đơn)

  • BillDetailID: INT, PRIMARY KEY, IDENTITY(1,1)

  • BillID: INT, FOREIGN KEY REFERENCES Bill(BillID)

  • ProductID: INT, FOREIGN KEY REFERENCES Product(ProductID)

  • Quantity: INT, CHECK (Quantity > 0)

  • UnitPrice: DECIMAL(12,2), NOT NULL

  • SubTotal: DECIMAL(12,2), NOT NULL


Tóm tắt ràng buộc:

  • PRIMARY KEY: StaffID, CustomerID, ProductID, BillID, BillDetailID.

  • FOREIGN KEY:

    • Bill.StaffID → Staff(StaffID)

    • Bill.CustomerID → Customer(CustomerID)

    • BillDetail.BillID → Bill(BillID)

    • BillDetail.ProductID → Product(ProductID)

  • UNIQUE: Staff.Phone


3. Yêu cầu triển khai

  1. Tạo Database và Table với các ràng buộc:

    • PRIMARY KEY, FOREIGN KEY.

    • CHECK, UNIQUE.

  2. Thao tác dữ liệu:

    • INSERT: Thêm dữ liệu mẫu cho các bảng.

    • UPDATE: Sửa dữ liệu có điều kiện (VD: cập nhật lương nhân viên).

    • DELETE: Xóa dữ liệu có điều kiện (VD: xóa sản phẩm hết hạn).

    • SELECT: Truy vấn dữ liệu.

  3. Nonclustered Index:

    • Tạo chỉ mục phụ cho cột ProductName trong bảng Product.

  4. View (2 câu):

    • View 1: Danh sách sản phẩm và số lượng tồn kho.

    • View 2: Thống kê doanh thu theo ngày.

  5. Stored Procedure (2 câu):

    • SP1: Tạo mới hóa đơn cùng chi tiết.

    • SP2: Tìm kiếm sản phẩm theo tên hoặc mã.

  6. Trigger (2 câu):

    • Trigger 1: AFTER UPDATE trên bảng BillDetail → Cập nhật lại TotalAmount trong Bill.

    • Trigger 2: FOR INSERT trên bảng Staff → Xuất thông báo/log khi thêm nhân viên mới.



Phản hồi từ học viên

5

Tổng 5 đánh giá

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó