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

Mối quan hệ một-nhiều trong SQL (Postgre)

Những gì bạn thực sự đang diễn ra ở đây là một mối quan hệ nhiều-nhiều. Hãy nghĩ về điều đó:mỗi thẻ có thể có trên một số bài đăng và mỗi bài đăng có thể có nhiều thẻ.

Kiến trúc quan hệ chính xác cho việc này là thêm một bảng khác ở giữa như sau:

CREATE TABLE post_tags (
  id INTEGER REFERENCES posts,
  tag VARCHAR REFERENCES tags
);

Sau đó thả các thẻ tags trên bảng bài đăng của bạn.

Điều này giải quyết tất cả các vấn đề của bạn, bởi vì bạn có thể lấy tập hợp thẻ trên một bài đăng hoặc tập hợp các bài đăng với một thẻ nhất định bằng cách kết hợp với post_tags theo các hướng khác nhau. Bạn cũng có thể lấy danh sách các thẻ bắt đầu bằng một thứ gì đó bằng cách sử dụng truy vấn LIKE thông thường, điều này sẽ khó khăn hơn nếu bạn có nhiều chuỗi được nối trong một trườ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. Vấn đề với việc xóa một hàng khỏi cơ sở dữ liệu là gì?

  2. Cách hoạt động của Ceiling () trong PostgreSQL

  3. Cần tạo trình kích hoạt làm tăng giá trị trong bảng sau khi chèn

  4. Hướng dẫn sử dụng pgBouncer cho PostgreSQL

  5. Chèn bytea vào loại postgresql json