2010-04-25 3 views
-3

Некоторые социальные игры на Facebook позволяют пользователю опубликовать ссылку на свой канал, чтобы сказать: «Нажмите здесь, чтобы получить бонусные золотые монеты - ограниченные первыми 5 людьми».Как реализовать ссылку, которая может получить бонус в 5 раз разными людьми в социальной сети?

Как мы можем создать такую ​​ссылку?

Ссылка не должна быть легко «сгенерирована» любыми людьми как метод обмана.

Кроме того, что таблица базы данных (ы) должна быть добавлена ​​для обработки:

1) бонус может быть востребован до 5 раз
2), должно быть востребована разными людьми

(каждый человек имеет уникальный цифровой идентификатор на платформе социальной сети, такой как Facebook)

?

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

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

+3

Пожалуйста, не обижайтесь, но ... как может человек со многими «точками», например, вы задаете такой тривиальный вопрос? Мне просто интересно. –

ответ

0

Вы создаете таблицу с текущими действительными хэшами и максимальным количеством, которое может быть заявлено, а другая таблица, в которой вы можете защитить все идентификаторы, которые уже нажмите ссылку. При этом вы можете проверить, осталось ли в ссылке клики слева, и что только разные люди нажали на нее.