gpt4 book ai didi

php - 寻找一段时间内活跃/不活跃用户的策略

转载 作者:行者123 更新时间:2023-11-29 13:52:55 26 4
gpt4 key购买 nike

我需要实现一个具有以下能力的机制:

  • 添加新用户
  • 删除用户
  • 启用用户
  • 禁用用户

并且还让管理员选择一段时间,然后显示哪些用户:

  • 当时在系统中可用
  • 已启用
  • 已禁用

结果应该是针对该确切时间段的。

注意:用户可能会被启用或禁用多次,我需要跟踪每一次更改。因此,如果用户在 3 月 1 日到 4 月 2 日之间被禁用,那么如果管理员查询 3 月 1 日到 4 月 2 日之间的时间段,则该用户不应出现在结果中,但如果管理员查询的是任何其他时间段。

棘手的部分是包含在管理员查询之前添加、删除、启用或禁用的用户。

我现在还没有任何设置,所以我很乐意接受任何想法。实际上我正在考虑像 log 这样的机制您可以稍后查询,但它应该非常快,因为我需要在很多地方使用它。

此外,我更喜欢在单个 MySQL 查询中完成所有操作,但是 PHP 组合/交互也可以。

最佳答案

根据评论,查看缓慢变化的维度:

http://en.wikipedia.org/wiki/Slowly_changing_dimension

额外的顶部,我自己已经实现了几次。就我个人而言,我发现拥有两组表格比一组表格更好。

将主表视为带有额外 rev(用于 revision_id)字段的普通表:

id, rev, field1, field2

rev 是修订表的外键:

id, rev, field1, field2, start_date, end_date

如果您使用 Postgres 来实现它,我建议您研究 tsrange 类型,而不是两个单独的 start_date 和 end_date 类型。

主表与历史表使“普通”查询执行得更好并且更容易建立索引。

关于php - 寻找一段时间内活跃/不活跃用户的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16400061/

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