У меня есть несколько вариантов, как я вижу.
печенье
Вы можете сохранять куки в браузере пользователей для каждой страницы, на которой вы просматриваете просмотры. Проверьте наличие файлов cookie и не регистрируйте просмотр, если файл cookie уже существует.
Недостатком является то, что он не будет работать, если куки отключены или кто-то пытается играть в систему.
С положительной стороны вам не нужно беспокоиться о хранении потенциально миллионов / миллиардов строк табличных данных.
База данных
У вас есть запись для каждого просмотра. Связать эту запись с пользователем, например, MemberID, IP-адрес; то, что должно быть уникальным для пользователя. IP не идеален, но достаточно хорош, если вы не требуете от пользователей входа в систему.
Таким образом, у вас будет, например, таблица со следующими столбцами,
- ArticleID (внешний ключ)
- UserID (внешний ключ)
- Дата
Дата будет полезна по нескольким причинам,
- Отчетность. Вы можете построить намного лучшую статистику, когда будете знать, когда записано каждое представление.
- Просмотр тайм-аутов. Например, вы можете хранить только один просмотр на пользователя в час. Вы можете сделать это, удерживая столбец даты.
Если ваше приложение станет популярным в этой ситуации, вам придется разобраться с последствиями для хранилища. Я запускаю популярное приложение Facebook, в результате которого каждый день добавляется более 100 000 просмотров. Реально, хотя, если ваше приложение становится настолько популярным, что становится проблемой, у вас будет гораздо больше проблем, с которыми вам придется иметь дело.