J'ai une application où les utilisateurs peuvent upvote ou downvote un article de blog. Pour mettre en œuvre la fonctionnalité de vote, j'ai créé le modèle ci-dessous ...Vote social sur Google App Engine
class Upvote(ndb.Model):
user_id = ndb.IntegerProperty(required=True)
blog_id = ndb.IntegerProperty(required=True)
Lorsqu'un utilisateur upvotes un poste, je l'enregistrer via:
Upvote(user_id=User.key.id(), blog_id=Blog.key.id()).put()
Et pour voir si un utilisateur a déjà upvoted I requête:
Upvote.query(Upvote.user_id=User.key.id(), Upvote.blog_id=Blog.key.id())
Est-ce la façon la plus efficace de mettre en œuvre un tel système de vote? Je veux m'assurer qu'il semble que le modèle Upvote
puisse devenir très grand. Bien sûr, j'optimise prématurément maintenant mais dans une situation théorique avec des millions d'utilisateurs, je veux la méthode la plus efficace/la moins chère.