首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一段时间内查找活动/非活动用户的策略

在一段时间内查找活动/非活动用户的策略
EN

Stack Overflow用户
提问于 2013-05-06 13:42:02
回答 1查看 166关注 0票数 0

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

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

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

  • 在此期间可在系统中获得
  • 已启用
  • 已禁用

结果应该是在这段时间内。

注意:用户可能会被启用或禁用几次,我需要跟踪每个更改。因此,如果用户在3月1日至4月2日之间被禁用,则如果管理员查询3月1日至4月2日之间的时间段,则不应在结果中显示,但如果管理员查询任何其他时间段,则应将其包括在结果中。

另外,棘手的部分是包含在管理员查询期间之前已经添加、删除、启用或禁用的usesr。

我现在还没做好任何准备,所以我对任何想法都很满意。实际上,我正在考虑一种像log这样的机制,您以后可以查询它,但是它应该非常快,因为我需要在很多地方使用它。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-06 20:52:06

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

dimension

一个额外的顶部,已经实现了几次我自己。就我个人而言,我发现最好有两组桌子,而不是一组。

将主表想象为具有额外rev (for revision_id)字段的普通表:

代码语言:javascript
复制
id, rev, field1, field2

rev是修订表的外键:

代码语言:javascript
复制
id, rev, field1, field2, start_date, end_date

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

主表与历史表使“正常”查询执行得更好,索引也更容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16400061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档