Tôi được một người bạn nói:Có tệ khi sử dụng tên người dùng làm khóa chính trong thiết kế cơ sở dữ liệu?
Bạn sử dụng khóa duy nhất nào? Tôi hy vọng bạn không lưu toàn bộ tên người dùng --- điều này sẽ sử dụng quá nhiều không gian bảng! Chỉ định userID duy nhất cho mỗi (duy nhất) userNAME và lưu userID này (phải được INTEGER UNSIGNED auto_increment hoặc BIGINT UNSIGNED auto_increment). Đừng quên tạo ra một tài liệu tham khảo
FOREIGN KEY (
userID
) THAM KHẢOusertable
(userID
) trong tất cả các bảng sử dụng userID.
Tuyên bố trên có đúng không? Tại sao hay tại sao không?
Khóa chính không thể thay đổi. Hoặc nó không phải là "chính". Chìa khóa nên được hệ thống giao, để đảm bảo rằng nó không bao giờ có thể thay đổi. Các trường khác (như tên) có thể có các chỉ mục duy nhất, nhưng không thể là khóa chính - theo định nghĩa. –
Ứng dụng chỉ định một số trường làm khóa chính và do đó không thay đổi. Sau đó, ứng dụng có thể thay đổi, tạo một trường ban đầu được định nghĩa là duy nhất và không thay đổi, để cho phép trùng lặp hoặc thay đổi, đó là điểm ở đây. –
Đó cũng là sự thật cho bảng tham gia? Nói cách khác, tôi có nên tạo ID cho mỗi mục nhập trong bảng kết hợp vì sự kết hợp các khóa chính có thể thay đổi không? –