2013-05-16 5 views
0

I m kinda новый для DynamoDB, мне нужно сделать следующее.Amazon DynamoDB + Rails 2.3.18

  1. Билеты создаются из связки мест (мы храним их в Mysql).
  2. Каждый билет имеет N видов деятельности и N варьируется для каждого билета.
  3. Мы планируем хранить деятельность билетов в dynamoDB для более быстрого поиска.

    Ниже мой план для хранения в dynamodb (читается как ключ => значение)

    1. активность идентификатор (UUID, что я буду генерировать) => данных Активность
    2. Каждый билет (удостоверение билета из моего RDBMS) => массив активность ид ..

Таким образом, я могу запросить как, показать мне всю деятельность на билет.

Теперь реальная проблема у меня есть, ..

Как насчет разрешений обработки в нем? Например: могут быть пользователи, у которых есть доступ, чтобы просматривать только действия своего билета, или могут быть пользователи, которые могут просматривать все действия любых билетов.

Как и где я могу хранить эти данные в динамо? Любая помощь будет оценена.

Также оценивается любой другой тип хранения в динамо.

ответ

0

Если UUID является криптографическим, пользователь не может угадать (и, следовательно, не может запрашивать) действия с билетами других пользователей.

Это, если у вас нет подтверждения на уровне приложения < - что обычно не так.

База данных обычно запрашивается приложением с запросом, который был создан после проверки пользователя. Приложение является суперпользователем (администратором), оно может получить все, что захочет, от dynamodb, но сам запрос должен быть аутентифицирован на уровне приложения.

У DynamoDb нет аутентификации по каждому элементу. Вам нужно понять это в своем приложении.

Вы можете продолжить использовать свое MySQL-решение для получения сведений о пользователе, и, например, хэш-код (крипто) может быть ключом в DynamoDb.

Вы также можете переместить конфигурацию пользовательских данных в другую таблицу в DynamoDb - но это слишком обширно и специфично для покрытия (если у вас нет конкретного вопроса).

+0

Спасибо Чен .. Как насчет возможности опроса DynamoDB? Предположим, у меня есть много атрибутов для действий (скажем, билет, человек, который сделал это, created_at и т. Д.). Могу ли я запросить на основе одной или комбинации 2 или 3 атрибутов? Это разрешено? Любые ссылки для поиска? Я читал о LSI. Но могу ли я запросить, как 1. Дайте мне все действия для билета (идентификатор билета) 2. Дайте мне последние мероприятия за последние 2 минуты (скажем) 3. Дайте мне все виды деятельности – Venky