gpt4 book ai didi

database - 跟踪用户最近事件的策略

转载 作者:太空狗 更新时间:2023-10-30 01:44:07 25 4
gpt4 key购买 nike

我们的客户想知道在线并且当前正在使用我们为他们编写的自定义应用程序。我与他们讨论过,这不需要准确,更多的猜测会起作用。

所以我的想法是用 15 分钟的时间间隔来确定用户事件。我对此的一些想法如下:

  1. 每次他们执行访问数据库或请求网页的操作时,都会在他们的用户记录上标记上次事件的日期和时间……尽管这可能会占用大量数据库资源。

  2. 从我们的软件发出“谁在线请求”,寻找响应,这可以按预定的时间间隔完成,然后在用户记录上标记我收到的每个响应的当前日期和时间。

你有什么想法?你会如何处理这种情况?

澄清

如果可能的话,我想为 Windows 或 Web 使用相同的体系结构。我有一个与多个用户界面交互的业务逻辑层,可以是 Windows 或 Web。

对于 Windows,我指的是客户端-服务器。

澄清

我使用的是 n 层架构,因此我的业务对象处理与表示层的所有交互。该表示层可以提供客户端-服务器 Windows 应用程序、Web 应用程序、Web 服务等。

这不是一个高流量应用程序,因为它是为我们的客户开发的,最多可能有 100 个用户。

最佳答案

我们的解决方案是除了我们的“ session ”表(跟踪谁在这里)之外,还维护一个“事务”表(跟踪已完成的操作)。 UPDATE、INSERT 和 DELETE 指令都通过“事务”对象进行管理,并且这些 SQL 指令中的每一个一旦在数据库上成功执行就存储在“事务”表中(取决于更新的表:我们有可能专门遵循一些表格并忽略其他表格)。这张“Transaction”表还有transactiontType(I代表INSERT,D代表DELETE,U代表UPDATE),transactionDateTime等字段,还有一个外键“sessionId”,最终告诉我们指令是谁发出的。甚至可以通过一些代码来确定谁在何时做了什么(Gus 在星期一创建了记录,Tim 在星期二更改了单价,Liz 在星期四添加了额外折扣,等等)。

此解决方案的优点是:

  1. 您可以分辨“什么人和什么时候”,并将其展示给您的用户! (你需要一些代码来分析 SQL 语句)
  2. 如果你的数据被复制,复制失败,你可以通过这个表重建你的数据库

缺点是

  1. 每月 100 000 次数据更新意味着 Tbl_Transaction 中有 100 000 条记录
  2. 最后,此表往往占您数据库容量的 99%

我们的选择:每天早上自动删除超过 90 天的所有记录

关于database - 跟踪用户最近事件的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174248/

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