值我有2个表employee_master & user_master加密在MySQL数据库
EMPLOYEE_ID是user_master的外键。
我需要在值插入user_master表时加密Employee_id的值。
但外键关系应保持......我们怎样才能做到这
值我有2个表employee_master & user_master加密在MySQL数据库
EMPLOYEE_ID是user_master的外键。
我需要在值插入user_master表时加密Employee_id的值。
但外键关系应保持......我们怎样才能做到这
我知道你不能像你会得到一个错误。
Cannot add or update child row: a foreign key constraint fail......
外键应该与其引用的字段具有相同的值和类型。
我对此并不确定,作为替代方案,您可以参考Bhushan的帖子。另一种方法是,将外键作为普通字段,如果该字段与引用字段相关,则让查询处理。但是,当然外键有其他正常领域没有的用途。
您可以使用某种中间表,这将有2列:Employee_id
和Encrypted_empi_id
,然后你可以user_master
使用相应的Encrypted_empi_id
作为一个关键。我不确定这是否适合你的模式,只是一个想法。
您可以使用MD5获取emp ID的加密版本,并可以反转加密版本以获取确切的原始emp ID。
为什么在这种情况下加密?在有人进入数据库的情况下,简单地执行'SELECT user_master.field FROM user_master JOIN employee_master ON(...)'来获取加密的员工ID的值是什么? – 2011-05-11 04:14:54
@ Matthew Scharley如果我们将加密的employee_id放入user_master,我们可以保留外键关系 – jennifer 2011-05-11 04:32:44