值我有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