【发布时间】:2014-06-12 07:55:09
【问题描述】:
我有两个实体(如下所示): 1. 用户 2. 书籍
现在,我的任务是在每次用户删除一本书时在“日志表”中记录活动。 book 和 log 表的架构如下:
书桌:
id book
-- ----
1 B1
2 B2
3 B3
4 B4
日志表:
user record_id record_type action
---- --------- ----------- ------
12 7 book delete
用户要删除一本书,他需要登录系统。 因此,一旦用户登录系统,我就会获取其 USERID 并将其存储在 PHP 会话和 MySQL 会话变量中。
$_SESSION['user_id'] = $user_id;
mysqli_query("SET @user_id = $user_id"); //I am planning to use this value in my mysql trigger.
现在,为了将条目存储在日志表中,我使用了下面显示的触发器。
DROP TRIGGER IF EXISTS `book_delete`;
CREATE TRIGGER book_delete AFTER DELETE ON books
FOR EACH ROW
BEGIN
INSERT INTO log_table(`user`, `record_id`, `record_type`, `action`)
VALUES (@user_id, OLD.`books.id`, 'book','delete');
END;
我的担忧是:
一个。我是否可以信任触发器中的 MySQL 变量(即@user_id)?
b.触发器中使用的@user_id 是否将始终具有用户登录时设置的值?
c。多个用户同时登录会发生什么?
请帮忙。
【问题讨论】: