Như một số ý kiến đã nói, một giải pháp là sử dụng khóa chính mới
Ví dụ: (theo ví dụ về @encedaywhen), giả sử tồn tại bảng Sách lưu trữ danh sách sách và chúng tôi đã "sử dụng" để xác định ISBN làm khóa chính. Tuy nhiên, một số tác giả đã phạm sai lầm khi gõ một mã sai vì vậy, họ đã yêu cầu thay đổi mã số, nó liên quan đến các nhiệm vụ tiếp theo:
- tạo sổ đăng ký mới trong bảng Sách
- trỏ tất cả các tham chiếu từ ISBN cũ sang ISBN mới. (*)
- Và cuối cùng, xóa sổ đăng ký cũ khỏi bảng Sách.
(*) điều này có thể không quan trọng để tìm tất cả các tham chiếu cho mô hình cơ sở dữ liệu sử dụng Khóa ngoài nhưng một số mô hình thiếu nó.
Table Books
ISBN is the primary key
NAME is a simple field.
etc.
Chúng tôi thay đổi nó như là
Table Books
InternalBookId as the primary key
ISBN as a simple field or an indexed field.
NAME is a simple field.
etc.
Trường hợp InternalBookId mới thậm chí có thể là một giá trị tự động.
Nhược điểm về nó:
nó thêm một trường mới sử dụng nhiều không gian / tài nguyên hơn.
nó có thể yêu cầu viết lại toàn bộ mô hình.
mô hình mới có thể ít tự giải thích.
Người chuyên nghiệp
- Cho phép thay đổi "khóa chính".
- Cho phép thậm chí thả hoặc tái cấu trúc "khóa chính", ví dụ, để thay đổi Sách thành ISBN-13 đơn giản đến mức bỏ cột cũ hơn và tạo một cột mới
Bảng mới:
Table Books
InternalBookId as the primary key
ISBN13 is a new field.
NAME is a simple field.
etc.