有没有办法实际获取更新的列名,以便在触发器中使用它?
基本上我只是在用户插入或更新表时尝试进行审计跟踪(在这种情况下,它与Contact表有关)
CREATE TRIGGER `after_update_contact`
AFTER UPDATE ON `contact` FOR EACH ROW
BEGIN
INSERT INTO user_audit (id_user, even_date, table_name, record_id, field_name, old_value, new_value)
VALUES (NEW.updatedby, NEW.lastUpdate, 'contact', NEW.id_contact, [...])
END
Run Code Online (Sandbox Code Playgroud)
如何获取已更新的列的名称,并从中获取该列的值OLD和NEW值.如果连续更新了多列甚至多行,是否可以对每次更新进行审核?
我正在为我的用户模块添加一个新功能用于我的CMS并且我遇到了障碍......或者我想,这是一个岔路口,我想在我做任何事情之前从stackoverflow获得一些意见.
基本上我想让管理员添加新的"额外"用户字段,用户可以在注册时填写,在他们的个人资料中编辑,和/或由其他模块控制.这方面的一个例子是生日场,对自己的冗长描述,或者用户在网站上获得的积分.不用说,存储的数据将是变化的,并且可以从大量文本到小整数值.更糟糕的是 - 我希望有搜索这些数据的选项.
除此之外 - 最好的方法是什么?现在我倾向于拥有一个包含以下列的表格.
userid, refFieldID, varchar, tinyint, smallint, int, text, date, datetime, etc.
Run Code Online (Sandbox Code Playgroud)
我更喜欢这个,因为它会使搜索速度明显加快,并且参考表(其中包含所有字段的数据,例如字段的名称,是否可搜索等)可以引用当应该使用哪个列时存储该字段的数据.
另一个想法,建议给我,我已经看到用于其他解决方案(vBulletin是一个,虽然我已经看到其他人的名字目前逃避我),你只有你的用户ID,参考ID和一个medtext领域.我不太清楚MySQL是否可以肯定地说这个,但是这种方法似乎比搜索速度慢,并且可能有更大的开销.
那么哪种方法"最好"?我还缺少另一种方法吗?无论我最终使用哪种方法,它都需要快速搜索,而不是大规模(一点点开销很好),并且最好允许使用针对数据的复杂查询.
因此,我有一个具有多个模块的应用程序(将模块视为不同的页面),每个模块都有一组权限;查看,添加,编辑,删除
我希望每个用户角色都具有每个模块的特权,例如
角色A权限
模块1->视图
模块2->添加,编辑
模块3->视图,添加,编辑,删除
等
我如何设计数据库来支持这一点,以及如何使用按位运算符来实现它(或者在这种特殊情况下会有更有效的方法?)
我已经有了用户表,user_role和角色表,但是不确定如何设计模块表。
我正在使用JSON来介于PHP和Javascript/Jquery之间...由于某种原因,我从MSSQL表中提取的数据间歇性地使我的JSON无效.我看不出为什么这应该是无效的任何原因...并且相同的数据集适用于OTHER条目.我尝试过不同的char编码...我尝试过使用htmlentities()和htmlspecialchars(),而且certian条目仍然使JSON无效.
以下是无效JSON的示例
{"TASK": "test","TYPE": "Other Issue","SUBTYPE": "","CATEGORY": "","REQUEST": "Mat Gilbert","OPENDATE": "Dec 8 2010 5:12PM","PRIORITY": "2 - Low","DUEDATE": "","DESCRIPT": "12/8/2010 12:12 PM Eastern Standard Time - scldom\mgilbert test\n","STATUS": "","RESPONS": ""}
当我使用jsonlint时...它告诉我以下内容:
语法错误,第10行意外的TINVALID
第10行是"DESCRIPT"字段.
我完全迷失了为什么这是无效的JSON.请帮忙.