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

Triển khai các bảng liên kết

Mối quan hệ giữa LocationsEvents là một ví dụ về mối quan hệ 1-nhiều. Điều này có nghĩa là mỗi vị trí riêng lẻ có thể có nhiều sự kiện được liên kết với nó. Các kiểu quan hệ này thường được triển khai bằng cách thêm khóa ngoại vào bảng 'nhiều' (sự kiện) tham chiếu đến khóa chính của bảng 'một' (các vị trí).

Mối quan hệ giữa 'Vị trí' và 'Loại' là một ví dụ về mối quan hệ nhiều-nhiều. Điều này có nghĩa là một vị trí có thể có nhiều loại và một loại có thể liên quan đến nhiều vị trí. Các kiểu quan hệ này thường được triển khai bằng một bảng liên kết, bảng này chứa các khóa ngoại cho các hàng liên quan. Bảng liên kết thường có khóa chính tổng hợp của hai khóa ngoại, có nghĩa là một vị trí không thể được liên kết với loại 'thanh' hai lần.

Vì vậy, các cấu trúc bảng sau có thể phù hợp với bạn:

Location: ID (primary key), LocationName, ...
Events: ID (primary key), LocationID (foreign key), Date, Name, ...
LocationTypes: LocationID (fk), TypeID (fk)
Types: ID (pk), Name, ...

Để truy vấn thông tin trên một số bảng, bạn phải sử dụng các phép nối. Đối với mối quan hệ 1-nhiều, truy vấn sau sẽ hoạt động:

SELECT
    l.LocationName, e.Name, e.Date
FROM Location l
    JOIN Events e ON l.ID = e.LocationID

Đối với mối quan hệ nhiều-nhiều, truy vấn sau sẽ kết hợp thông tin với nhau.

SELECT
    l.LocationName, t.Name as TypeName
FROM Location l
    JOIN LocationTypes lt ON l.ID = lt.LocationID
    JOIN Types t ON lt.TypeID = t.ID

Những ví dụ này chỉ hiển thị một phép nối bên trong tiêu chuẩn, có những kiểu phép nối khác có thể phù hợp hơn với nhu cầu của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql để chọn bản ghi theo tháng ngay cả khi dữ liệu không tồn tại

  2. Truy vấn con tương quan MySQL trong cú pháp JOIN

  3. Làm cách nào để thực hiện 'chèn nếu không tồn tại' trong MySQL?

  4. Thêm một cột vào tất cả các Truy vấn Chọn MySQL trong một lần chụp

  5. Tự động đặt tự động tăng thêm mysql thành giá trị tối thiểu