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

Một bảng so với nhiều bảng

Có thể có những lý do thực sự để muốn / cần một bảng nhận xét. Ví dụ:nó sẽ giúp việc xem tất cả các nhận xét từ một người dùng nhất định trở nên đơn giản hơn. Ngoài ra, việc tìm kiếm thông qua tất cả các bình luận sẽ đơn giản hơn (đặt một chỉ mục FTS trên một bảng và bạn đã hoàn tất).

Mặt khác, nếu không có lý do thuyết phục để giữ các nhận xét trong một bảng duy nhất, thì có một giải pháp thứ ba (và khá rõ ràng).

Tạo một bảng nhận xét riêng cho từng mục (bài đăng, sự kiện, tệp, tài liệu). Các mối quan hệ RI sẽ rất đơn giản để xác định và mô tả trong tình huống đó. Ngoài ra, nếu bạn đang gõ các truy vấn đặc biệt thường xuyên, nó có thể làm cho nó đơn giản hơn. Ví dụ

 select * from documents d left join doc_comments c 
                           on d.id = c.docid 
                           where d.id=42;

Không điều nào trong số này có thể phù hợp hoặc quan trọng đối với tình huống của bạn, nhưng nó có thể đáng được xem xét.

Một suy nghĩ ngẫu nhiên bổ sung:Cả hai giải pháp trong OP đều có cảm giác rằng chúng đang xác định mối quan hệ nhiều-nhiều (ví dụ:một nhận xét có thể thuộc nhiều mục). Giả sử đó không phải là tình huống mong muốn, nó có thể được ngăn chặn bằng chỉ mục duy nhất thích hợp, ... nhưng ... nó vẫn có diện mạo ban đầu, có vẻ như có thể dẫn đến nhầm lẫ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. Các cách di chuyển dữ liệu cũ hơn 'Y' ngày vào bảng lưu trữ / lịch sử trong MySQL là gì?

  2. JSON_MERGE_PRESERVE () - Hợp nhất nhiều tài liệu JSON trong MySQL

  3. Làm cách nào để lưu trữ dữ liệu XML vào cơ sở dữ liệu mysql? Tôi không muốn các phím nước ngoài như điên

  4. Mysql chọn (n) hàng của mỗi lần xuất hiện

  5. sử dụng các trường ảo để tính tổng các giá trị trong cakephp