Đây là bài 5 của chương 2: Ràng buộc và toàn vẹn, thuộc khóa demo PostgreSQL. Nội dung được dùng để trải nghiệm cấu trúc chương trình học; hãy thực hành trên dữ liệu và môi trường thử nghiệm riêng. Trong dự án xuyên suốt, bạn sẽ xây dựng cơ sở dữ liệu khóa học, đăng ký học và báo cáo tiến độ.
Mục tiêu cụ thể
Not null, unique, check và foreign key đưa quy tắc quan trọng xuống DB. Ứng dụng vẫn validate để trả thông báo dễ hiểu, nhưng DB bảo vệ khi có nhiều đường ghi dữ liệu.
Bộ câu hỏi tự kiểm tra
- Vì sao ràng buộc và toàn vẹn cần được xem xét riêng trong dự án PostgreSQL?
- Giải thích bằng lời của bạn: Not null, unique, check và foreign key đưa quy tắc quan trọng xuống DB. Ứng dụng vẫn validate để trả thông báo dễ hiểu, nhưng DB bảo vệ khi có nhiều đường ghi dữ liệu.
- Phát hiện vấn đề trong tình huống: Unique cho một cột khác với unique cho cặp cột. Cần xác định đăng ký lại được ghi lịch sử hay cập nhật cùng một enrollment.
- Bạn sẽ giữ bằng chứng gì để chứng minh giải pháp hoạt động?
Tiêu chí chấm
- Không có đăng ký mồ côi
- Cặp user-course là duy nhất
- Quy tắc lưu lịch sử được mô tả
Bài mở rộng
Bắt đầu từ yêu cầu Thử chèn hai đăng ký trùng cặp người dùng-khóa học trong DB thử nghiệm và giải thích lỗi. Thay đổi quy mô, độ dài dữ liệu hoặc thứ tự thao tác. Chọn đúng một biến thể phù hợp với chương rồi dự đoán tác động trước khi thử. Ví dụ là công cụ để hiểu nguyên lý, không phải đáp án duy nhất.
Gợi ý tự đánh giá
- Mức 1: nhắc lại được khái niệm nhưng chưa tự thực hiện.
- Mức 2: tự hoàn thành ví dụ và giải thích các bước.
- Mức 3: xử lý được trường hợp biên và giải thích lựa chọn khác.
Nếu chưa đạt mức 2, quay lại bài thực hành thay vì chỉ đọc đáp án. Khi đã đạt mức 3, ghi lại một cách giải khác và so sánh độ đơn giản, khả năng kiểm chứng và giới hạn của hai phương án.
Lưu bằng chứng
Tạo bảng gồm ca thử, đầu vào, kết quả mong đợi, kết quả thực tế và kết luận. Chỉ đánh dấu hoàn thành sau khi từng tiêu chí có kết quả quan sát được; bài tự kiểm tra này không tự chấm điểm và không cấp chứng chỉ.