這裏是我想怎樣做:PostgreSQL的功能外鍵
create table stuff
(some_key varchar primary key,
some_data varchar)
;
create table obfuscated_stuff
(some_key_sha1 varchar references digest(stuff (some_key), 'sha1'),
other_data varchar)
;
換句話說,我想建立一個外鍵基於一個單向散列另一個表,而不必將該散列放在原始表中。
這是一項政策/法規要求。我可以構建沒有FK約束的「obfuscated_stuff」表,但我寧願在那裏。
它不允許在FK約束中使用函數。我也不能做一個FK的視圖(可能有它的功能)。還有其他建議嗎?
最終目標是什麼。你能否隱藏一個ID然後在後臺加入表格?什麼是混淆的東西的目的?通常這樣的東西更好地完成權限和良好的後端工程。 –
決策者不希望我們明確地加入兩個數據集。我們已經在父表上鎖定了相關的列級權限。將數據插入到子表中的過程需要引用回父表中的行。如果可以的話,我寧願包含一個確保引用有效的約束。 – rotten
當將'some_key_sha1'插入混淆的子表時,您知道'some_key'嗎? –