Asked Aug 31st, 1:34 PM 328 0 2
  • 328 0 2
0

Hỏi về xử lí quan hệ nhiều-nhiều trong SQL

Share
  • 328 0 2

Các bác cho em hỏi về các xử lí quan hệ nhiều-nhiều trong SQL Thông thường em hay dùng cách chia bảng phụ, nhưng khi query thì phải join rất nhiều lần với bảng có nhiều quan hệ nhiều-nhiều

Có cách nào để tối ưu cái quan hệ này không các bác? Em cảm ơn 😄

Nagi @hungpv
Sep 1st, 12:53 AM

một bảng để 2 PK được à bạn?

0
| Reply
Share
Sep 1st, 1:19 AM

Theo mình thì đây là cách tối ưu nhất rồi mà bạn. JOIN thì có vấn đề gì đâu, người ta còn join mấy chục bảng với nhau cơ mà 😄

Còn nếu muốn giảm số bảng thì bạn có thể cân nhắc dùng kiểu data array nhé. Trong một số trường hợp mình vẫn dùng kiểu dữ liệu này và jsonb trên postgres. MySQL hay các DBMS khác có không mình cũng không rõ 🖖

https://www.postgresql.org/docs/9.1/arrays.html

+2
| Reply
Share
tunvps @tunvps11094
Sep 1st, 3:55 PM

@hungpv em tạo bảng nhanh không để ý nó bác à

0
| Reply
Share

2 ANSWERS


Answered Sep 7th, 2:45 AM
+1

Còn tùy bác muốn tối ưu làm gì? Tối ưu để truy vấn hay để lưu trữ hiệu quả. Nhưng mà chuẩn N3 là oke nhất rồi nhé!

Share
Answered Sep 1st, 4:02 AM
0

Có thể lưu trường tag_ids chứa nhiều id tag trong bảng post.

Share
Sep 10th, 9:57 AM

Giữa Post và Tag thì thường gặp bài toán: 1- Hiển thị danh sách tag của bài viết tương ứng 2- Hiển thị danh sách bài viết có gắn tag Với cái số 1: bạn thêm trường list_tag ở bảng post và dùng trigger để tự động lấy các tag và update vào list_tag Với cái số 2: bạn thêm trường list_post_id ở bảng tag và query where in để lấy các bài viết của tag đó

0
| Reply
Share
Sep 10th, 5:05 PM
0
| Reply
Share