phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

Hiểu về khóa chính và cơ sở dữ liệu mối quan hệ với MySQL (phpmyadmin)

TL; DR Bạn không cần để khai báo một "mối quan hệ" tức là khóa ngoại (FK) để truy vấn. Nhưng đó là một ý kiến ​​hay . Khi bạn làm như vậy, FK có thể tham chiếu đến khóa chính (PK) hoặc bất kỳ (các) cột DUY NHẤT nào khác.

PK &FK được gọi nhầm là "mối quan hệ" trong một số phương pháp và sản phẩm. Mối quan hệ ứng dụng được biểu thị bằng bảng . (Bảng cơ sở và kết quả truy vấn.) PK &FK là những ràng buộc:chúng cho DBMS biết rằng chỉ một số tình huống nhất định mới có thể phát sinh, vì vậy nó có thể thông báo khi bạn mắc một số lỗi nhất định. Chúng không phải là các mối quan hệ, chúng là các câu lệnh đúng trong &của mọi trạng thái cơ sở dữ liệu và tình huống ứng dụng. Bạn không cần biết các ràng buộc để cập nhật và truy vấn cơ sở dữ liệu.

Chỉ cần biết mọi bảng có nghĩa là gì . Các bảng cơ sở có các ý nghĩa do DBA cung cấp cho bạn biết ý nghĩa của các hàng của chúng. Các truy vấn cũng có các ý nghĩa cho bạn biết ý nghĩa của các hàng của chúng. Ý nghĩa truy vấn được kết hợp từ các ý nghĩa của bảng cơ sở song song với cách kết hợp các giá trị kết quả của chúng từ các giá trị và điều kiện của bảng cơ sở.

  • image_tbl - hình ảnh [Id] nằm trong một album có tên [albumName], được đặt tên là [name], được ghi ngày [dateTime] và có nhận xét [comment]
  • album_tbl - album [albumID] được đặt tên là [albumName]

Bạn không để khai báo bất kỳ PK / UNIQUE hoặc FK nào! Nhưng đó là một ý kiến ​​hay vì khi đó DBMS có thể không cho phép các cập nhật không thể thực hiện được / có lỗi. PK / UNIQUE nói rằng một giá trị con cho các cột của nó chỉ được xuất hiện một lần. FK nói rằng giá trị con cho các cột của nó phải xuất hiện dưới dạng giá trị con PK / DUY NHẤT trong bảng tham chiếu của nó. Thực tế là những hạn chế này tồn tại trên các bảng cơ sở có nghĩa là một số hạn chế nhất định sẽ ảnh hưởng đến kết quả truy vấn. Nhưng ý nghĩa của các kết quả truy vấn đó là theo kết hợp bảng &điều kiện của truy vấn, độc lập với những giới hạn đó. Ví dụ:tên anbom có ​​phải là duy nhất hay không,

  • image_tbl JOIN album_tbl USING albumName - image [Id] nằm trong album có tên [albumName], được đặt tên là [name], được ghi ngày [dateTime] và có nhận xét [comment] VÀ album [albumID] được đặt tên là [albumName]

Vấn đề duy nhất ở đây là nếu tên album không phải là duy nhất thì việc biết tên album của hình ảnh sẽ không cho bạn biết nó nằm trong album nào; bạn chỉ biết rằng nó nằm trong một album có tên đó. Mặt khác, nếu tên album là duy nhất, bạn không cần album_tbl albumID.

Vì vậy, nếu tên album là duy nhất, hãy khai báo albumName UNIQUE trong album_tbl. Sau đó, trong image_tbl xác định album theo một số cột PK / DUY NHẤT của album_tbl. Vì album_id có lẽ được xuất hiện chỉ với mục đích xác định album, nên thông thường chúng tôi sẽ mong đợi nó được chọn. Sau đó, trong image_tbl khai báo cột đó dưới dạng FK tham chiếu album_tbl.

Các chỉ mục PS thường tăng tốc độ truy vấn với chi phí là thời gian và không gian. Khai báo khóa chính trong khai báo bảng sẽ tự động khai báo chỉ mục. Bạn nên lập chỉ mục các tập hợp cột PK, UNIQUE và FK.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. MAMP MySQL Không thể kết nối:cài đặt không hợp lệ.

  2. Không thể khởi động phpMyAdmin. Tiếp tục nhận được lỗi ổ cắm # 2002

  3. Thay đổi bộ mã mặc định

  4. không thể đăng xuất khỏi phpmyadmin trong XAMPP

  5. lỗi khi thêm ràng buộc khóa ngoại