Tôi luôn cố gắng để có một khóa nguyên nguyên trên bảng bất kể là gì. Nhưng bây giờ tôi đang đặt câu hỏi nếu điều này là luôn luôn cần thiết.chỉ mục văn bản so với chỉ số nguyên trong mysql
Giả sử tôi có một bảng sản phẩm và mỗi sản phẩm có số SKU duy nhất trên toàn cầu - đó sẽ là một chuỗi gồm 8-16 ký tự. Tại sao không làm cho PK này? Thông thường tôi sẽ làm cho trường này trở thành chỉ mục duy nhất nhưng sau đó có trường int gia tăng tự động là PK, vì tôi cho rằng nó sẽ nhanh hơn, dễ bảo trì hơn và cho phép tôi làm những việc như nhận được 5 bản ghi mới nhất được thêm dễ dàng. Tuy nhiên, về mặt tối ưu hóa, giả sử tôi chỉ muốn kết hợp trường văn bản đầy đủ và tiếp theo là các truy vấn đối sánh văn bản (ví dụ như %%), bạn có thể nghĩ ra bất kỳ lý do nào không sử dụng khóa chính dựa trên văn bản hay không, nhiều khả năng loại varchar()?
Chúc mừng, imanc
có thể trùng lặp của http://stackoverflow.com/questions/63090/surrogate-vs-natural-business-keys – outis