2012-11-29 25 views
0

如何基於數據存儲區中模型(類)的多個屬性(字段)創建自己的唯一密鑰。如何在基於多個屬性的數據存儲區中創建密鑰

這裏是我有4個字段的名稱,設備,ID,數據的情況。現在我想根據我的3個字段(即名稱,設備,ID)創建一個密鑰,以便每當數據到達時,如果密鑰已經針對該數據存在,則將其替換爲該密鑰,否則插入具有新密鑰的新數據數據。這樣我就可以保存一個數據庫命中(即我不需要那個需要檢查模型中的鍵是否存在數據的命中,如果已經存在,也可以替換數據本身,否則插入新的記錄)
所以我怎樣才能使用我的3個字段這個關鍵。

+2

如果不提供鑰匙,你會得到一個唯一的密鑰。用這種方式,每一個投入都是獨一無二如果您創建自己的密鑰(連接字段),則可以使用get_or_insert檢查密鑰是否唯一。 – voscausa

+0

你能否澄清一下你所要做的是創造祖先關係? – Sologoub

+0

這裏它是一個情況我有4個字段的名稱,設備,身份證,數據 – yasir

回答

1

在說明明顯的風險之後,最簡單的答案就是製作一個連接三個字段的單個鍵,以及一些不能出現在其中的分隔符。在Java中,例如,沿着線的東西:

String delimiter = ":"; 
String key = name + delimiter + device + delimiter + id; 
+0

它現在正在工作我已經做出了一個獨特的關鍵,現在我把這個唯一密鑰傳遞給key_name這是數據存儲區中唯一(默認)字段。 EventLogModel(key_name = key_name_,game_code = game_code,game_version = game_version,device_type = device_type,device_id = device_id,events = events).put() – yasir

0

這是工作,現在我已經做了一個獨特的密鑰,現在我通過這個潮頭關鍵KEY_NAME這是在數據存儲唯一的(默認)領域。

key_name_ = game_code+game_version+device_type+device_id 

EventLogModel(**key_name** = key_name_, game_code = game_code, game_version = game_version, device_type = device_type , device_id = device_id , events=events).put() 

相關問題