Tôi có một câu hỏi cơ bản về nơi tôi nên nhúng một bộ sưu tập những người theo dõi/theo dõi trong một db mongo. Nó có ý nghĩa để có một bộ sưu tập nhúng sau đây trong một đối tượng người dùng, nhưng nó cũng có ý nghĩa để cũng nhúng bộ sưu tập những người theo dõi converse không? Điều đó sẽ có nghĩa là tôi sẽ phải cập nhật và nhúng trong hồ sơ thông tin về cả:thiết kế db mongo của các mục sau đây và nguồn cấp dữ liệu, tôi nên nhúng ở đâu?
- sau danh sách nhúng trong đi theo
- Và những người theo danh sách nhúng của followee
Tôi có thể' t đảm bảo nguyên tử trên đó trừ khi tôi cũng bằng cách nào đó giữ một giao dịch hoặc cập nhật trạng thái ở đâu đó. Có đáng giá nó nhúng trong cả hai thực thể hoặc tôi chỉ cần cập nhật # 1, nhúng sau trong hồ sơ của người theo dõi và, đặt một chỉ mục trên nó để tôi có thể truy vấn cho người theo dõi trên tất cả các cấu hình? Hiệu suất có ảnh hưởng đến quá nhiều không?
Đây có phải là ứng viên cho bộ sưu tập không được nhúng không? Tôi có nên chỉ có một bộ sưu tập các cạnh mà tôi lưu trữ sau trong bộ sưu tập của riêng mình với followerid và followbyId?
Bây giờ, nếu tôi cũng phải cập nhật nguồn cấp dữ liệu cho cả người dùng khi họ được theo dõi hoặc theo dõi, tôi nên tổ chức điều đó như thế nào? Đối với trường hợp sử dụng, người dùng sẽ thấy những người họ đang theo dõi khi xem nguồn cấp dữ liệu của họ, điều này xảy ra khá thường xuyên và cũng xem những người theo dõi tiểu sử khi họ xem chi tiết tiểu sử của bất kỳ ai, điều này cũng thường xuyên xảy ra nhưng không hoàn toàn nhiều như trường hợp đầu tiên. Trong cả hai trường hợp, tổng số người theo dõi và người theo dõi sẽ hiển thị trên mọi trang tiểu sử.
Mặc dù rất quan hệ trong tự nhiên, tôi hoàn toàn đồng ý với cách giải thích của bạn.Đây là một trong những nơi mà các mối quan hệ có ý nghĩa hoàn hảo, và bạn không kết thúc với các hình phạt về hiệu suất theo cách này. –
điều này cũng sẽ áp dụng cho "thích" không? Ví dụ bỏ phiếu trên trang web mongo nhúng các lượt thích trong tài liệu nhưng có vẻ như cùng một dòng lý luận có thể được thực hiện cho các lượt thích cũng như sau. – MonkeyBonkey
@MonkeyBonkey - cách tiếp cận này có thể được sử dụng cho "thích" là tốt, nhưng bạn rất có thể sẽ chỉ muốn 1 trong số các chỉ mục. Lợi thế của việc nhúng nó cho một kịch bản "thích" là bạn có thể duy trì một số lượng chính xác "các số" bằng cách sử dụng toán tử $ inc. Ngoài ra, điều này phụ thuộc vào trang web của khóa học nhưng # người thích một bài đăng không thể đạt đến cấp độ tương tự như # người theo dõi cho người dùng có lưu lượng truy cập cao, vì vậy hiệu suất tồi tệ nhất có thể ít quan trọng hơn ở đó. – mpobrien