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

Khóa ngoại khi không cần thiết

Câu trả lời cho quesiton này thực sự cũng có thể áp dụng cho câu hỏi của bạn.

Nếu bạn có các cột trong bảng tham chiếu đến các hàng trong các bảng khác, bạn phải luôn sử dụng khóa ngoại, vì ngay cả khi bạn nghĩ rằng bạn 'không cần' các tính năng được cung cấp bởi các kiểm tra đó, nó vẫn sẽ giúp đảm bảo tính toàn vẹn của dữ liệu trong trường hợp bạn quên kiểm tra trong mã của riêng bạn.

Tác động hiệu suất của kiểm tra khóa ngoại là không thể thấy được trong hầu hết các trường hợp (xem liên kết ở trên), vì cơ sở dữ liệu quan hệ sử dụng các thuật toán rất tối ưu để thực hiện chúng (xét cho cùng, chúng là một tính năng chính vì chúng thực sự xác định mối quan hệ giữa các thực thể).

Một ưu điểm chính khác của FK là chúng cũng sẽ giúp những người khác hiểu được bố cục của cơ sở dữ liệu của bạn.

Chỉnh sửa: Vì câu hỏi được liên kết ở trên đề cập đến SQL-Server, đây là một câu trả lời thuộc loại rất giống với MySQL: Việc giới thiệu khoá ngoại vào MySQL có làm giảm hiệu suất không



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truyền tên cột làm tham số cho một thủ tục được lưu trữ trong mySQL

  2. ClassCastException:java.math.BigInteger không thể được truyền sang java.lang.Long khi kết nối với MySQL

  3. Lưu các đối tượng Python Pickled trong MySQL db

  4. Làm thế nào để so sánh 2 danh sách và hợp nhất chúng trong Python / MySQL?

  5. Làm thế nào để sử dụng Enums trong Scala Slick?