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

Một đến nhiều MySQL

MySQL không biết, cũng không cần biết mối quan hệ là 1-1 hay 1-nhiều.
Không SQL nào hỗ trợ mối quan hệ nhiều-nhiều, tất cả đều yêu cầu một bảng trung gian chia mối quan hệ nhiều-nhiều thành 2 tách 1-nhiều.

Sự khác biệt nằm ở logic điều khiển các mối quan hệ, nằm trong mã mà bạn viết.
Mối quan hệ 1-1 được duy trì bằng cách để các bảng chia sẻ cùng một khóa chính (PK).
Với bảng phụ khai báo rằng PK như một khóa ngoại trỏ đến các bảng khác PK.

Table chinese_mother (
id integer primary key,
name....
   

Table chinese_child (
id integer primary key,
name ....
....,
foreign key (id) references chinese_mother.id

Hướng của mối quan hệ 1 -> many so với many <- 1 được xác định bởi vị trí của trường liên kết.

Thông thường mỗi bảng có một id duy nhất và trường liên kết được gọi là tablename_id .
Bảng có trường liên kết trong đó là many bên của mối quan hệ, bảng khác nằm trên 1 bên cạnh.

Table user
id: primary key
name......
.....

Table location
id: primary key
user_id foreign key references (user.id)
x
y
.......

Bằng cách đặt trường liên kết vào location , bạn buộc mọi thứ để một vị trí chỉ có thể có 1 người dùng. Tuy nhiên, một người dùng có thể có nhiều vị trí.



  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ậm khi tham gia. Bất kỳ cách nào để tăng tốc

  2. Tránh đưa vào SQL trong SQL-regex do người dùng tạo

  3. Làm cách nào để tạo một câu lệnh PDO được tham số hóa trong PHP cho một truy vấn động?

  4. Tìm bài đăng có tag1 VÀ tag2? (sử dụng một bảng nối) Tồn tại / Có / truy vấn con ... Sử dụng gì?

  5. Tìm khoảng trống trình tự còn thiếu mysql