是否存在可以执行此操作的插件?如果没有,我理论上可以创建一个跟踪这种信息的mysql数据库吗?
例如,假设我有一个以用户名作为主键的表post_views,并且每次用户到来时,我都会检查该表中是否存在具有帖子ID的列的值。
如果确实如此,那就做点什么......如果没有,那么,创建列并指定值为1或者其他东西。
这样的事情是否可行?对不起,我是一个mysql noob。
谢谢!
答案 0 :(得分:2)
嗯,这是可行的,是的。
你可以:
对于登录用户:创建一个关系表,比如users_posts
id | user_id | post_id
在每个帖子视图中,在此表中插入用户ID和帖子ID(如果您希望可以添加其他信息,例如阅读帖子的日期)。对此表的查询将告诉您用户打开的所有页面,或者相反,您可以检查该用户是否看到某个页面。根据你所说的,这是一个比你想象的更可行的表格模式;
对于非登录用户:如果没有用户ID,您可以使用cookies:在cookie中写入用户信息(IP,UserAgent,等等)和帖子ID;只要cookie没有被清除(或过期),你仍然会知道用户看到了什么。为了增加甜度:只要用户登录,您就可以将这个基于cookie的信息转换为第2点中的方法。
好吧,再想一想,cookie不是必需的,你也可以在这里使用数据库,但是表格不会存储用户ID,而是存储其他信息(你可以使用带有添加列的同一个表,或者专门用于新的列)非登录用户。我会选择后者)
请记住,IP,用户代理和其他此类信息不可靠,并且可能导致问题 - 第一个可以由不同的用户共享,第二个可以很容易欺骗。最好的做法是忽略这一点3)并始终只跟踪已登录的用户,这样就不会产生问题。