MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Chuẩn hóa MongoDB, khóa ngoại và tham gia

MongoDB không hỗ trợ các mối quan hệ khóa ngoài phía máy chủ, việc chuẩn hóa cũng không được khuyến khích. Bạn nên nhúng đối tượng con của mình vào các đối tượng mẹ nếu có thể, điều này sẽ làm tăng hiệu suất và làm cho các khóa ngoại hoàn toàn không cần thiết. Điều đó nói rằng không phải lúc nào cũng có thể thực hiện được, vì vậy có một cấu trúc đặc biệt được gọi là DBRef cho phép tham chiếu các đối tượng trong một bộ sưu tập khác. Sau đó, điều này có thể không quá nhanh vì DB phải thực hiện các truy vấn bổ sung để đọc các đối tượng nhưng cho phép loại tham chiếu khóa ngoại.

Tuy nhiên, bạn sẽ phải xử lý các tài liệu tham khảo của mình theo cách thủ công. Chỉ khi tra cứu DBRef của mình, bạn sẽ thấy nếu nó tồn tại, DB sẽ không duyệt qua tất cả các tài liệu để tìm kiếm các tham chiếu và loại bỏ chúng nếu mục tiêu của tham chiếu không còn nữa. Nhưng tôi nghĩ rằng việc xóa tất cả các tài liệu tham khảo sau khi xóa sách sẽ yêu cầu một truy vấn duy nhất cho mỗi bộ sưu tập, không hơn, vì vậy thực sự không quá khó.

Nếu lược đồ của bạn phức tạp hơn thì có lẽ bạn nên chọn cơ sở dữ liệu quan hệ chứ không phải nosql.

Ngoài ra còn có một cuốn sách về thiết kế cơ sở dữ liệu MongoDB:Thiết kế tài liệu cho MongoDB

CẬP NHẬT Cuốn sách trên hiện không còn nữa, nhưng vì sự nổi tiếng của MongoDB nên có khá nhiều cuốn khác. Tôi sẽ không liên kết tất cả chúng, vì các liên kết như vậy có khả năng thay đổi, một tìm kiếm đơn giản trên Amazon sẽ hiển thị nhiều trang, vì vậy sẽ không thành vấn đề khi tìm một số trang.

Xem trang hướng dẫn sử dụng MongoDB để biết 'Tài liệu tham khảo thủ công' và DBRefs để biết thêm chi tiết và ví dụ cụ thể



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Có mã hóa dự phòng cho MySQL, MongoDB &PostgreSQL - ClusterControl 1.5.1

  2. Nhiều biểu thức $ elemMatch để khớp các giá trị mảng bằng cách sử dụng $ all trong MongoDB?

  3. Ưu điểm của việc sử dụng cơ sở dữ liệu không có lược đồ như MongoDB so với cơ sở dữ liệu quan hệ là gì?

  4. Nâng cấp lên ClusterControl Enterprise Edition

  5. MongoDB findOneAndUpdate ()