Tôi đang cố gắng tìm ra tương đương với các khóa và chỉ mục ngoại trong cơ sở dữ liệu NoSQL KVP hoặc Tài liệu. Vì không có bảng quan trọng (để thêm các khóa đánh dấu mối quan hệ giữa hai đối tượng), tôi thực sự bối rối về cách bạn có thể truy xuất dữ liệu theo cách có ích cho các trang web thông thường.Làm thế nào để bạn theo dõi các mối quan hệ kỷ lục trong NoSQL?
Giả sử tôi có người dùng và người dùng này để lại nhiều nhận xét trên toàn bộ trang web. Cách duy nhất tôi có thể nghĩ ra để theo dõi người dùng bình luận là để
- Nhúng chúng vào đối tượng người dùng (mà có vẻ khá vô dụng)
- Tạo và duy trì một giá trị
user_id:comments
có chứa một danh sách của mỗi bình luận của key [comment: 34, comment: 197, etc ...] để tôi có thể lấy chúng khi cần thiết.
Tuy nhiên, lấy ví dụ thứ hai bạn sẽ sớm đạt mức bức tường gạch khi bạn sử dụng nó để theo dõi những thứ khác như một chìa khóa gọi là "active_comments" mà có thể chứa 30 triệu id trong nó làm cho nó chi phí một TÔN để truy vấn mỗi trang chỉ để biết một số nhận xét đang hoạt động gần đây. Nó cũng sẽ rất dễ bị điều kiện chủng tộc vì nhiều trang có thể cố cập nhật cùng một lúc.
Làm cách nào để theo dõi các mối quan hệ như sau trong cơ sở dữ liệu NoSQL?
- Tất cả các ý kiến của người dùng
- Tất cả các ý kiến tích cực
- Tất cả bài viết được gắn thẻ với [từ khoá]
- Tất cả học sinh trong một câu lạc bộ - hoặc tất cả các câu lạc bộ học sinh đang
Hay tôi đang nghĩ về điều này không chính xác?
Không có cách nào để làm điều đó trong cơ sở dữ liệu NoSQL, câu hỏi này đúng hơn là một thân nhân để hỏi làm cách nào tôi theo dõi các mối quan hệ trong các chương trình C. – stonemetal
Wow, sau đó tôi đoán hype về NoSQL thay thế RDBMS là không thể. – Xeoncross
Vâng, NoSQL chắc chắn là overhyped. Tôi không nói rằng các công nghệ mới không hữu ích trong hoàn cảnh thích hợp, nhưng thật vô lý khi nghĩ rằng họ sẽ thay thế RDBMS. Xem http://en.wikipedia.org/wiki/Hype_cycle –