Cả ba đều là ràng buộc nhưng phục vụ mục đích khác nhau:
- Primary key: định danh duy nhất mỗi dòng (mỗi user một id). Đây là cột mà các bảng khác thường trỏ tới.
- Unique key: đảm bảo một (hoặc vài) cột không trùng, ví dụ email không được lặp — nhưng nó không phải "danh tính chính" của dòng.
- Foreign key: đảm bảo giá trị ở bảng con phải có thật ở bảng cha (order.user_id phải ứng với một user tồn tại).
Mẹo trả lời phỏng vấn: PK = danh tính, UNIQUE = quy tắc nghiệp vụ (email duy nhất), FK = giữ dữ liệu liên kết không bị "mồ côi". Đừng bỏ FK chỉ để code linh hoạt hơn nếu dữ liệu cần nhất quán.