2011-05-11 112 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。