Chọn khóa chính cho cơ sở dữ liệu

Không sử dụng mã ZIP hoặc số an sinh xã hội

Cơ sở dữ liệu phụ thuộc vào các khóa để lưu trữ, sắp xếp và so sánh hoặc tạo mối quan hệ giữa các bản ghi. Nếu bạn đã ở xung quanh cơ sở dữ liệu trong một thời gian, bạn có thể đã nghe nói về các loại khóa khác nhau: các khóa chính, khóa ứng viên và khóa ngoài . Khi bạn tạo một bảng cơ sở dữ liệu mới, bạn được yêu cầu chọn một khóa chính sẽ nhận dạng duy nhất mỗi bản ghi được lưu trữ trong bảng đó.

Tại sao một khóa chính quan trọng

Việc lựa chọn khóa chính là một trong những quyết định quan trọng nhất mà bạn sẽ thực hiện trong thiết kế cơ sở dữ liệu mới . Ràng buộc quan trọng nhất là bạn phải đảm bảo rằng khóa được chọn là duy nhất. Nếu có thể là hai bản ghi – quá khứ, hiện tại hoặc tương lai — có thể chia sẻ cùng một giá trị cho một thuộc tính, đó là lựa chọn không tốt cho khóa chính.

Một khía cạnh quan trọng khác của khóa chính là sử dụng các bảng khác liên kết với nó trong cơ sở dữ liệu quan hệ. Trong khía cạnh này, một khóa chính hoạt động như đích của một con trỏ. Do các phụ thuộc lẫn nhau này, khóa chính phải tồn tại khi một bản ghi được tạo ra và nó không bao giờ có thể thay đổi.

Lựa chọn kém cho khóa chính

Những gì một số người có thể xem xét một sự lựa chọn rõ ràng cho một khóa chính có thể là một sự lựa chọn nghèo để thay thế. Đây là vài ví dụ:

  • Mã bưu điện không tạo ra các khóa chính tốt cho một bảng thị trấn. Nếu bạn đang tạo một bảng tra cứu thành phố đơn giản, mã ZIP có vẻ là một khóa chính hợp lý. Tuy nhiên, khi điều tra thêm, bạn có thể nhận ra rằng nhiều hơn một thị trấn chia sẻ mã ZIP. Ví dụ, các thành phố New Jersey của Neptune, Thành phố Neptune, Tinton Falls và Thị trấn Wall đều chia sẻ mã ZIP 07753.
  • Số an sinh xã hội không tạo ra khóa chính tốt vì nhiều lý do. Hầu hết mọi người xem SSN của họ là riêng tư và không muốn nó hiển thị rõ ràng cho người dùng cơ sở dữ liệu. Một số người không có số SSN – người nước ngoài hoặc người nhập cư chưa bao giờ nhận được thẻ An Sinh Xã Hội. Các SSN cũng có thể được tái sử dụng sau khi một người chết. Một cá nhân có thể có nhiều hơn một SSN trong suốt cuộc đời khi Cơ quan An sinh Xã hội phát hành một số mới trong trường hợp gian lận hoặc trộm danh tính.
  • Địa chỉ email cũng là một lựa chọn tồi cho khóa chính. Mặc dù chúng là duy nhất, chúng có thể thay đổi theo thời gian. Hơn nữa, không phải ai cũng có địa chỉ email.

Chọn một khóa chính hiệu quả

Vì vậy, những gì làm cho một khóa chính tốt? Trong hầu hết các trường hợp, hãy chuyển sang hệ thống cơ sở dữ liệu của bạn để được hỗ trợ.

Cách thực hành tốt nhất trong thiết kế cơ sở dữ liệu là sử dụng khóa chính được tạo nội bộ. Hệ thống quản lý cơ sở dữ liệu của bạn thường có thể tạo ra một định danh duy nhất không có ý nghĩa bên ngoài hệ thống cơ sở dữ liệu. Ví dụ, bạn có thể sử dụng kiểu dữ liệu Microsoft Access AutoNumber để tạo một trường có tên RecordID. Loại dữ liệu AutoNumber tự động tăng trường mỗi lần bạn tạo bản ghi. Trong khi số lượng chính nó là vô nghĩa, nó cung cấp một cách đáng tin cậy để tham chiếu một bản ghi riêng lẻ trong các truy vấn.

Khóa chính tốt thường ngắn, sử dụng số và tránh các ký tự đặc biệt hoặc kết hợp chữ hoa và chữ thường để tạo điều kiện tra cứu cơ sở dữ liệu nhanh chóng và so sánh.