Tôi hiện đang có một ứng dụng trò chơi xã hội bằng cách sử dụng mongodb cho cơ sở dữ liệu của nó. Câu hỏi của tôi là một số gợi ý nếu tôi muốn tạo ra một điểm và hệ thống huy hiệu. Logic kinh doanh cho các thành tích/huy hiệu có thể trở nên khá phức tạp và rất đặc biệt để việc trao huy hiệu thời gian thực dường như không hiệu quả. Tôi đang tưởng tượng thêm các hành động được theo dõi vào hàng đợi ở đâu đó, tức là SQS của Amazon hoặc chỉ sử dụng nguồn cấp dữ liệu hoạt động của người dùng làm hàng đợi và có một quy trình công nhân ngoại tuyến khác trải qua và xử lý các tác động của mọi hành động/hoạt động bất kỳ huy hiệu cụ thể nào đều bị gạch chéo.làm thế nào để thành tựu kiến trúc sư và badging với nosql
Nỗi lo lắng của tôi với phương pháp này là dường như các truy vấn huy hiệu có thể trở nên khá chuyên sâu và tôi cũng phải theo dõi một số lượng lớn các hành động. Tôi có thể hình dung các thành tích khác nhau từ những thứ như huy hiệu cho người nào đó đã giành được vị trí thứ 2 mỗi tuần trong 4 tuần qua hoặc huy hiệu cho người nào đó có bạn bè ở mọi quốc gia trong số 50 tiểu bang ... v.v.
Có nhiều phương pháp thanh lịch hoặc đã thử và đúng cho loại nội dung này không? Bạn có nên sử dụng cơ sở dữ liệu khác cho thành tích/nguồn cấp dữ liệu hoạt động/bảng xếp hạng bên cạnh mongo, tạo môi trường lai hỗn hợp db/mongo khác không?
Các lựa chọn như Redis, Neo4J hay chỉ là SQL Server đơn giản cũ là lựa chọn tốt cho giải pháp lai? Tôi thích Mongo như vậy sẽ ở lại như db chính của chúng tôi, nhưng tò mò muốn xem nếu thêm một db để trộn sẽ giúp đỡ.