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

Mô hình tốt nhất để biểu diễn nhiều mối quan hệ với các thuộc tính trong MongoDB

Theo nhiều cách, API của sao băng khuyến khích các tài liệu quan hệ phẳng, tuy nhiên MongoDB là một kho lưu trữ dữ liệu phi quan hệ. Rất tiếc, xung đột này được coi là một bài tập cho nhà phát triển giải quyết.

Khái niệm về cấu trúc lược đồ và phép nối là một chủ đề lớn cần đề cập trong một câu trả lời duy nhất, vì vậy tôi sẽ cố gắng ngắn gọn nhất có thể.

Lý do bạn nên chọn mô hình quan hệ

Giả sử bạn có bình luận và đăng dữ liệu. Hãy xem xét điều gì sẽ xảy ra nếu bạn nhúng các nhận xét vào bài đăng của mình.

  • DDP hoạt động trên các tài liệu. Tất cả các nhận xét sẽ được gửi đi mỗi khi một nhận xét mới trong cùng một bài đăng được thêm vào.

  • allowdeny các quy tắc hoạt động trên các tài liệu. Có thể không hợp lý khi mong đợi rằng các quy tắc giống nhau áp dụng đồng thời cho cả bài đăng và nhận xét.

  • Các ấn phẩm có xu hướng có ý nghĩa hơn về các bộ sưu tập. Trong trường hợp trên, chúng tôi không thể dễ dàng xuất bản danh sách các nhận xét độc lập với các bài đăng của họ.

  • Cơ sở dữ liệu quan hệ tồn tại vì những lý do chính đáng. Một trong số đó là tránh vấn đề sửa đổi nhiều lần trong giải pháp thứ hai của bạn.

Lý do bạn nên chọn mô hình nhúng

  • Tham gia không được hỗ trợ bởi MongoDB và không có gói cốt lõi để tạo ra một tham gia phản ứng.

Đề xuất

Sử dụng giải pháp thứ ba của bạn. Theo kinh nghiệm của tôi, những lý do để chọn một mô hình quan hệ vượt xa những hạn chế do kho dữ liệu áp đặt. Tất nhiên, việc khắc phục tình trạng thiếu liên kết không phải là dễ dàng, nhưng nỗi đau có thể chỉ xảy ra với một số ít các chức năng xuất bản. Dưới đây là một số tài nguyên tôi thực sự muốn giới thiệu:

  • Cách xuất bản mối quan hệ nhiều-nhiều trên EventedMind. Chris trình bày chi tiết trường hợp sử dụng chính xác của bạn, tuy nhiên, anh ấy thực hiện thủ công kết hợp phản ứng với các lệnh gọi lại quan sát, điều này tôi không khuyên bạn nên sử dụng.

  • Reactive tham gia vào thiên thạch từ Bách khoa toàn thư Discover Meteor. Phần này bao gồm những kiến ​​thức cơ bản về cách thức và lý do tại sao một người nên thực hiện tham gia phản ứng.

  • Chương bất chuẩn hóa từ Discover Meteor. Điều này bao gồm nhiều điểm tôi đã đưa ra ở trên và cũng nói về thời điểm và cách chuẩn hóa một số dữ liệu của bạn.

  • Bạn có thể sử dụng Xuất bản với quan hệ để kết hợp dữ liệu của mình. Các gói thay thế bao gồm:xuất bản thông minh, xuất bản tổng hợp và xuất bản đơn giản.

Nếu bạn cần thêm thông tin nào khác, vui lòng bình luận bên dưới và tôi sẽ cập nhật câu trả lời của mình.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. xác thực dòng lệnh của mongo không thành công

  2. Công tắc MongoDB $

  3. $ project trong $ lookup mongodb

  4. Làm cách nào để thêm id duy nhất hai cột vào mongodb trong ứng dụng sao băng?

  5. Xóa tham chiếu một và một - nhiều - Mongoose