我需要实施一个具有以下能力的机制:
并让管理员选择一段时间,然后显示哪些用户是:
结果应该是在这段时间内。
注意:用户可能会被启用或禁用几次,我需要跟踪每个更改。因此,如果用户在3月1日至4月2日之间被禁用,则如果管理员查询3月1日至4月2日之间的时间段,则不应在结果中显示,但如果管理员查询任何其他时间段,则应将其包括在结果中。
另外,棘手的部分是包含在管理员查询期间之前已经添加、删除、启用或禁用的usesr。
我现在还没做好任何准备,所以我对任何想法都很满意。实际上,我正在考虑一种像log这样的机制,您以后可以查询它,但是它应该非常快,因为我需要在很多地方使用它。
此外,我更喜欢在单个MySQL查询中完成所有操作,但是PHP组合/交互也可以。
发布于 2013-05-06 20:52:06
根据评论,查看缓慢变化的维度:
dimension
一个额外的顶部,已经实现了几次我自己。就我个人而言,我发现最好有两组桌子,而不是一组。
将主表想象为具有额外rev (for revision_id)字段的普通表:
id, rev, field1, field2rev是修订表的外键:
id, rev, field1, field2, start_date, end_date如果您曾经使用Postgres来实现它,我建议您查看tsrange类型,而不是两个单独的start_date和end_date类型。
主表与历史表使“正常”查询执行得更好,索引也更容易。
https://stackoverflow.com/questions/16400061
复制相似问题