全栈项目的用户行为跟踪机制



我正在用react和。net Core创建一个项目,我想添加跟踪用户行为的功能。

我只是想知道谁添加的产品?谁更新的?谁删的?

我心里有两个选择,哪个更好,我不知道

1-创建跟踪机制。Net like a trigger

public class ActivityType
{
public int ActivityTypeId { get; set; }
public string ActivityTypeName { get; set; }//Added,Updated
}
public class Activity
{
public int ActivityId { get; set; }
public DateTime ActivityTime { get; set; }
public int ActivityTypeId { get; set; }
public ActivityType ActivityType { get; set; }
}
public class ProductActivity
{
public int ProductActivityId { get; set; }
public virtual Product Product{ get; set; }
public int ProductId { get; set; }
public int ActivityId { get; set; }
public virtual Activity Activity { get; set; }
public virtual User User { get; set; }
public int UserId { get; set; }
}

Inside ProductController>addProduct

[HttpPost("add")]
public async Task<ActionResult<Product>> Add(Product product)
{         
var result = _productService.Add(product);
if (result.Success)
{
//example code
//var newActivity=_context.ProductActivity
//{
//productId:result.Data.Id
//ActivityId:1 //added
//User:1
//})
//_context.ProductActivity.Add(newActivity);
//_context.SaveChanges();

return Ok(result);
}
}

2-在React中使用action函数(redux)创建跟踪机制

如果我选择那样。我必须创建ProductActivity Controller和Endpoint,然后我将在react中命中这个端点。

const createProduct = async () => {
const tokenResponce = await productService.createProduct({
productName:"x" ,
});

if(tokenResponce)
{
dispatch(addedProduct());
}       
else
{
console.log("error");
} 
};

我怀疑你想在某个地方持久化跟踪,在这种情况下,最好在服务器上完成(选项1)。根据我的理解,你不需要在前端做任何事情,因为后端知道哪个用户调用每个方法(我假设用户登录)。因此,您将在对Product

进行创建(添加)、读取(获取)、更新、删除(CRUD)的每个方法中获取当前登录用户的标识。

最新更新