mysql - 如何根据 MySQL 数据库中的日期为用户构建数据

标签 mysql database zend-framework database-design zend-db

我正在开发一个 zend 项目,该项目具有基于用户记录时间的功能。它需要能够根据日期范围生成报告。我希望有人可以帮助我找出处理存储该信息的最佳方法。

我正在使用用户表来处理所有基本的个人资料信息。我想最好的情况是将它链接到另一个表以跟踪 session 记录......我只是没有考虑它应该如何布局。我看到一些页面建议使用数据库中的列作为日期,但在我看来,这很快就会变得难以管理。

当前站点有 1500 个用户,每天都有多个用户提交...我只是不确定我是怎么做到的。

任何帮助都会很棒。 谢谢

最佳答案

一种方法,基于我认为您正在寻找的内容:

创建包含 User_ID FK、Start_Time 和 End_Time 的 User_Session 表。每次用户开始和结束 session 时,向该表写入一个新行。您可以在登录时获取这些 User_ID 和 Start_Time,并在 session 结束或用户注销时获取 End_Time。

现在您有一个包含 [1500 个用户] x [每天的 session 数] 的历史表,我认为它很大但并非难以想象。 (特别是查看它是如何正确索引的等等。)您可以针对该表运行查询,可以说是针对您需要的任何日期范围的 SELECT User_ID, SUM(End_Time - Start_Time)。

要控制表的大小,您可以依次存储这些聚合值(User_ID、MMYY、Num_Minutes)并按设定的时间表截断源表。但是,存储计算字段可能不如手头有规范化数据更好。因此,在您确定源表大小是一个大问题之前,不要走那条路。

只是众多方法中的一种,并且为了清楚起见进行了过度简化。

关于mysql - 如何根据 MySQL 数据库中的日期为用户构建数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9611794/

相关文章:

mysql - 用于构建 Web 应用程序的技术堆栈

mysql - 选择顶部错误

php - 如何计算两个 Zend_Date 对象之间的差异,以月为单位

mysql - Zend 框架 : Select query

iphone - 将图像存储和检索到 iphone 的 sqlite 数据库中

php - 具有多个表连接的 Zend DB Select

java - 将Java连接到MySQL数据库

mysql - 如何使用注册表单解决空指针异常错误

c# - 1090mhz 接收器和 MySql 数据库

html - Chrome 中的 Google 搜索 <mark> 如何回答滚动后消失的网站