Hiện tại, tôi có một categoriesbảng có 2 cột - category VARCHAR(50) NOT NULL PRIMARY KEYvà parent VARCHAR(50). Các parentcột là khóa ngoại (FK) đến categorycột.
Đây dường như là cách tiếp cận rõ ràng nhất. Tuy nhiên, tiếng chuông báo thức đang vang lên trong đầu tôi vì tôi đang sử dụng một VARCHARcột cho khóa chính, điều này có thể làm chậm hoạt động khi truy vấn bảng.
Tôi có thể giới thiệu một cột thứ ba được gọi cat_id INT AUTO_INCREMENTvà đặt đó là PK, nhưng nó sẽ giới thiệu một cột mới không có ý nghĩa.
Ngoài cái nào sẽ nhanh hơn, cần xem xét những gì khác?
NB Tôi dự đoán sẽ có tối đa 1000 danh mục hoặc vì vậy số lượng hàng không quá cao. Tuy nhiên, categoriescột PK sẽ là cột tham chiếu cho nhiều khóa ngoại, trong các bảng khác.
Tôi có nên sử dụng tên người dùng (duy nhất) làm PK không?