Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chìa khóa duy nhất với NULL

Thuộc tính cơ bản của khóa duy nhất là thatit phải là duy nhất. Tạo một phần của khóa đó Nullable sẽ phá hủy thuộc tính này.

Có hai giải pháp khả thi cho vấn đề của bạn:

  • Một cách, sai lầm, sẽ là sử dụng một ngày phép thuật nào đó để đại diện cho điều chưa biết. Điều này chỉ giúp bạn vượt qua "vấn đề" DBMS nhưng không giải quyết vấn đề theo nghĩa logic. Những người này là một và giống nhau hay họ là những cá thể duy nhất? Nếu bạn biết họ khác nhau thì bạn sẽ quay lại vấn đề cũ - Chìa khóa duy nhất của bạn chỉ là không duy nhất. Thậm chí đừng nghĩ đến việc gán toàn bộ dãy dữ liệu ma thuật để đại diện cho "chưa biết" - đây thực sự là con đường dẫn đến địa ngục.

  • Một cách tốt hơn là tạo thuộc tính EmployeeId làm khóa thay thế. Đây chỉ là số nhận dạng tùy ý mà bạn gán cho các cá nhân mà bạn biết là duy nhất. Thisidentifier thường chỉ là một giá trị số nguyên. Sử dụng khóa đại diện EmployeeId ở mọi nơi mà trước đây bạn đã sử dụng Tên / Ngày sinh. Điều này sẽ thêm một bảng mới vào hệ thống của bạn nhưng giải quyết vấn đề giá trị không xác định một cách mạnh mẽ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. máy chủ php ERR_CONNECTION_REFUSED

  2. PHPmailer - Gửi nhiều e-mail

  3. Cách quản lý cơ sở dữ liệu với phpMyAdmin

  4. MySQL - Hàm ELT () và FILED () để trích xuất vị trí chỉ mục từ danh sách

  5. Cách quản lý các đặc quyền với các vai trò trong MySQL