【问题标题】:database logic for tracking each and every operation in my web application用于跟踪我的 Web 应用程序中的每个操作的数据库逻辑
【发布时间】:2013-12-20 16:00:55
【问题描述】:

我正在开发一个 Web 应用程序。在我的应用程序中,我需要跟踪每个登录用户的每个操作。

我为完成这项任务制定了以下计划:-

  • 我将在mysql中创建存储过程。

  • 我将在每个表的插入、更新时触发此过程 删除。

这对我来说是一项艰巨的工作。有人会以正确的方式指导我吗?

我正在使用基于 PHPCodeigniter 框架和 mysql 数据库。

请帮帮我

编辑:- 考虑到上述步骤,我无法开发。现在我处于困惑的状态。那么有没有人可以给我这个想法?

我需要的是 - 在用户登录后,跟踪该用户所做的每一件事。

提前感谢您的帮助。

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    如果您可以控制 MySQL 数据库,那么启用 MySQL 的查询日志将是最简单的解决方案。在 my.cnf(例如 Debian /etc/mysql/my.cnf)中找到 [mysql] 部分,然后将设置调整为如下所示:

    general_log_file        = /var/log/mysql/mysql.log
    general_log             = 1
    

    然后使用(同样是 Debian 示例)sudo service mysql restart 重新启动 MySQL。

    如果您处理的是 MySQL

    log = /var/log/mysql/mysql.log
    

    如果您需要从应用程序中读取日志数据,您可以将日志转储到数据库表而不是文件中。要实现这一点,请在 my.cnf 部分的 [mysqld] 中添加以下行:

    log_output = TABLE
    

    然后您可以使用

    读取查询日志
    SELECT * FROM mysql.general_log;
    

    【讨论】:

    • 如何在我的应用程序中访问该文件?以及我将如何显示包含哪个日志文件的消息
    • 您可以简单地将日志转储到表中。在上面添加了详细信息。
    • mysql日志文件一般保存在哪里?
    • 如果我遵循您的逻辑 - 那么只能从 1 个服务器执行 1 个应用程序。不超过一个。所以不合适也不通用。
    • 在上面的示例中,路径在 my.cnf 中定义,log = /var/log/mysql/mysql.log
    【解决方案2】:

    如果您使用谷歌分析,您可以使用谷歌分析来跟踪您的登录用户所做的所有操作。请查看谷歌分析自定义变量和事件跟踪。在这里查看Custom VariableEvent tracking

    【讨论】:

    • 不,不是那样的。实际上它会像 FB 通知一样随时通知。
    • 寻找像neo4j这样的graph db,它会对你有所帮助。检查 www.sportskeeda.com 通知系统
    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 2018-03-27
    • 2016-06-20
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    相关资源
    最近更新 更多