Câu trả lời ngắn gọn: DEPENDS .... Trong trường hợp cụ thể này, nó có thể ổn. Tuy nhiên, các chuyên gia sẽ khuyến cáo không nên sử dụng nó bất cứ lúc nào; kể cả trường hợp của bạn.
Tại sao?
Các khóa hiếm khi là duy nhất trong bảng khi chúng ngoại lai (bắt nguồn từ bảng khác) với bảng được đề cập. Ví dụ: một ID mặt hàng có thể là duy nhất trong bảng ITEMS, nhưng không phải trong bảng ĐƠN HÀNG, vì cùng một loại mặt hàng rất có thể sẽ tồn tại trong một đơn đặt hàng khác. Tương tự như vậy, ID đơn hàng có thể là duy nhất (có thể) trong bảng ORDERS, nhưng không phải trong một số bảng khác như ORDER_DETAILS, nơi một đơn hàng có nhiều mục hàng có thể tồn tại và để truy vấn một mục cụ thể trong một đơn hàng cụ thể, bạn cần kết hợp hai FK (order_id và item_id) làm PK cho bảng này.
Tôi không phải là chuyên gia DB, nhưng nếu bạn có thể biện minh một cách hợp lý để có một giá trị được tạo tự động làm PK của bạn, tôi sẽ làm điều đó. Nếu điều này không thực tế, thì sự kết hợp của hai (hoặc có thể nhiều hơn) FK có thể đóng vai trò là PK của bạn. NHƯNG, tôi không thể nghĩ ra bất kỳ trường hợp nào mà một giá trị FK duy nhất có thể được coi là PK.