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

Một bảng cơ sở dữ liệu có thể không có khóa chính?

Về mặt kỹ thuật, bạn có thể khai báo một bảng như vậy.

Nhưng trong trường hợp của bạn, time nên được đặt làm PRIMARY KEY , vì có thể sai khi có các nhiệt độ khác nhau trong cùng một thời điểm và có thể là vô ích nếu có cùng một lúc nhiều hơn một lần.

Về mặt logic, mỗi bảng phải có một PRIMARY KEY để bạn có thể phân biệt hai bản ghi.

Nếu bạn không có khóa ứng cử viên trong dữ liệu của mình, chỉ cần tạo một khóa thay thế (AUTO_INCREMENT , SERIAL hoặc bất cứ điều gì cơ sở dữ liệu của bạn cung cấp).

Lý do duy nhất cho việc không có PRIMARY KEY là một nhật ký hoặc bảng tương tự là đối tượng của DML nặng và có một chỉ số trên đó sẽ ảnh hưởng đến hiệu suất vượt quá mức cho phép.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể lập chỉ mục giữa các bảng không?

  2. JPA + Hibernate:Cách xác định ràng buộc có BẬT XÓA CASCADE

  3. PolyScale.ai - Mở rộng MySQL &PostgreSQL với Global Caching

  4. MySQL WHERE TRONG ()

  5. Ngày hiển thị từ cơ sở dữ liệu PHP