gpt4 book ai didi

java - 如何跟踪每个用户查看的项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:44 25 4
gpt4 key购买 nike

我有 product 的列表和 categories并且需要知道是否每个用户都看过它们,还有总数 products对于每个 category已被每个用户查看。

简而言之,我需要保留

  • 每个用户查看的产品(一旦用户查看了产品的配置文件,它将被添加到此列表中)
  • 每个用户查看的类别(一旦用户查看了类别的资料,它将被添加到此列表中)
  • 每个类别中已被浏览过的产品数量每个用户?

我在 Client 中添加了两个成员变量类如下。我不确定它是否正确,其次我不知道如何为每个用户的每个类别的所有查看产品保留一个计数器。 (我知道我可以使用数据库的 (COUNT) 函数检索它,但我想知道是否有任何其他有效的方法而不是将此请求发送到数据库)。

客户:

@Entity
public class Client {
@Id
@GeneratedValue
private long id;

@OneToOne
private List<Product> viewedProducts = new ArrayList<Product>(); //keep list of viewed products

@OneToOne
private List<Category> viewedCategories = new ArrayList<Category>(); //keep list of viewed categories

....
}

产品

@Entity
public class Product {

@Id
@GeneratedValue
private long id;

@ManyToOne(cascade = CascadeType.ALL)
private Category category;

....
}

类别

@Entity
public class Category {
@Id
@GeneratedValue
private long id;

....
}

最佳答案

我的建议是保留你目前拥有的那些成员变量,并将以下内容添加到你的类中

   @OneToMany
private List<ViewedProductsPerCategory> =
new ArrayList<ViewedProductsPerCategory>();

在那堂课上你应该有

@Entity
public class ViewedProductsPerCategory {
@Id
@GeneratedValue
long id;

@OneToMany
Category category;

long CatCounter;

long ProCounter;

getters and setters;
}

但请确保将计数器保存在 cookie 中,而不是在用户每次访问产品或类别时调用数据库。用户注销后,将 cookie 中的数字添加到数据库中的相应计数器。

问题:请注意,用户可能会在注销前删除 cookie,尽管这种情况非常罕见,因为大多数用户在登录时不会删除他们的 cookie,以避免被注销。

关于java - 如何跟踪每个用户查看的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20257429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com