Некоторые социальные игры на Facebook позволяют пользователю опубликовать ссылку на свой канал, чтобы сказать: «Нажмите здесь, чтобы получить бонусные золотые монеты - ограниченные первыми 5 людьми».Как реализовать ссылку, которая может получить бонус в 5 раз разными людьми в социальной сети?
Как мы можем создать такую ссылку?
Ссылка не должна быть легко «сгенерирована» любыми людьми как метод обмана.
Кроме того, что таблица базы данных (ы) должна быть добавлена для обработки:
1) бонус может быть востребован до 5 раз
2), должно быть востребована разными людьми
(каждый человек имеет уникальный цифровой идентификатор на платформе социальной сети, такой как Facebook)
?
Update: так, как я думал о том, чтобы получить следующий первичный идентификатор (целое число индекса) в таблице премии, и md5 его с каким-то секретным ключом, чтобы получить «приз код», и убедитесь, что это еще не находится в таблице «PrizeClaimed» - если она уже существует, просто используйте следующий первичный идентификатор (добавив запись и пересчитайте md5 до тех пор, пока не будет найден уникальный). Эта таблица PrizeClaim представляет собой таблицу соединений для призовых_кодов и user_id, поэтому один приз может быть востребован несколькими людьми, и один человек может претендовать на несколько призов. Если, когда человек нажимает на ссылку, мы добавляем запись призового_кода и user_id в таблицу - но только если количество записей, полученных при сопоставлении с кодом призового пропуска, равно 4 или меньше. Если 5 уже, то просто сообщите «слишком поздно - заявили все люди». Интересно, как этот метод, есть ли лазейка, улучшение или другие способы его реализации?
(например, таблица Prize - это всего лишь таблица для получения идентификатора, и она ничего не хранит. Возможно, мы можем использовать текущую временную метку с микросекундами плюс случайное число, чтобы выполнить md5, и если имя_призывания уже существует, просто повторите еще раз. В этом случае мы можем забыть о таблице Премии.)
Пожалуйста, не обижайтесь, но ... как может человек со многими «точками», например, вы задаете такой тривиальный вопрос? Мне просто интересно. –