2013-05-16 5 views
0

Je suis un peu nouveau sur DynamoDB, j'ai besoin de faire ce qui suit.Amazon DynamoDB + Rails 2.3.18

  1. Les billets sont créés à partir d'un tas de places (nous les stockons à Mysql).
  2. Chaque ticket a N activités et N varie pour chaque ticket.
  3. Nous prévoyons de stocker les activités de tickets dans dynamoDB pour une récupération plus rapide.

    Voici mon plan pour stocker dans DynamoDB (lu comme clé => valeur)

    1. id d'activité (UUID que je vais engendrons) => données d'activité
    2. Chaque billet (billet id de ma SGBDR) => array de ids d'activité ..

donc, je peux interroger comme, me montrer toutes les activités pour un billet.

Maintenant, le vrai problème est que j'ai ..

Comment sur les autorisations de manipulation en elle? Par exemple: Il peut y avoir des utilisateurs qui ont accès pour voir seulement les activités de leur billet, ou il peut y avoir des utilisateurs qui peuvent voir toutes les activités des tickets.

Comment et où puis-je stocker ces données en dynamo? Toute aide serait appréciée.

Tout autre type de stockage en dynamo est également très apprécié.

Répondre

0

Si l'UUID est cryptographique, l'utilisateur ne peut pas deviner (et donc ne peut pas interroger) les activités de ticket d'autres utilisateurs.

Ceci est si vous n'avez aucune validation au niveau de l'application < - ce qui n'est généralement pas le cas.

La base de données est généralement interrogée par l'application avec une requête qui a été créée après la validation d'un utilisateur. L'application est un super-utilisateur (admin), elle peut obtenir tout ce qu'elle veut de la dynamodb, mais la requête elle-même doit être authentifiée au niveau de l'application.

DynamoDb ne possède pas d'authentification par élément. Vous devez le comprendre dans votre application.

Vous pouvez continuer à utiliser votre solution MySQL pour les détails de l'utilisateur, et par exemple un hash (crypto) de l'utilisateur peut être une clé dans le DynamoDb.

Vous pouvez également déplacer la configuration des détails de l'utilisateur vers une autre table dans DynamoDb - mais c'est un peu trop large et spécifique à couvrir (sauf si vous avez une question spécifique).

+0

Merci Chen .. Que diriez-vous de la capacité d'interrogation de DynamoDB? Supposons que j'ai de nombreux attributs pour les activités (disons, ticketid, personne qui l'a fait, created_at etc ...). Puis-je interroger en fonction d'un ou d'une combinaison de 2 ou 3 attributs? Est-ce autorisé? Des liens à rechercher? J'ai lu à propos de LSI. Mais puis-je interroger comme 1. Donnez-moi toutes les activités pour un billet (ID de ticket donné) 2. Donnez-moi des activités récentes pour les 2 dernières minutes (say) 3. Donnez-moi toutes les activités – Venky

Questions connexes