2011-05-11 128 views
0

值我有2个表employee_master & user_master加密在MySQL数据库

EMPLOYEE_ID是user_master的外键。

我需要在值插入user_master表时加密Employee_id的值。

但外键关系应保持......我们怎样才能做到这

+1

为什么在这种情况下加密?在有人进入数据库的情况下,简单地执行'SELECT user_master.field FROM user_master JOIN employee_master ON(...)'来获取加密的员工ID的值是什么? – 2011-05-11 04:14:54

+0

@ Matthew Scharley如果我们将加密的employee_id放入user_master,我们可以保留外键关系 – jennifer 2011-05-11 04:32:44

回答

1

我知道你不能像你会得到一个错误。

Cannot add or update child row: a foreign key constraint fail...... 

外键应该与其引用的字段具有相同的值和类型。

我对此并不确定,作为替代方案,您可以参考Bhushan的帖子。另一种方法是,将外键作为普通字段,如果该字段与引用字段相关,则让查询处理。但是,当然外键有其他正常领域没有的用途。

1

您可以使用某种中间表,这将有2列:Employee_idEncrypted_empi_id,然后你可以user_master使用相应的Encrypted_empi_id作为一个关键。我不确定这是否适合你的模式,只是一个想法。

您可以使用MD5获取emp ID的加密版本,并可以反转加密版本以获取确切的原始emp ID。