Không có gì sai khi sử dụng CHAR hoặc VARCHAR làm khóa chính.
Chắc chắn nó sẽ chiếm nhiều không gian hơn INT trong nhiều trường hợp, nhưng có nhiều trường hợp nó là sự lựa chọn hợp lý nhất và thậm chí có thể giảm số lượng cột bạn cần, cải thiện hiệu quả, bằng cách tránh phải có trường ID riêng biệt.
Ví dụ:mã quốc gia hoặc chữ viết tắt của tiểu bang đã có mã ký tự chuẩn hóa và đây sẽ là lý do chính đáng để sử dụng khóa chính dựa trên ký tự thay vì tạo ID số nguyên tùy ý cho mỗi mã thêm vào.