檢索數據我設計一個數據庫和Java應用程序如下:
1.允許用戶通過一個API查詢數據庫。
2.允許用戶保存查詢並通過'query-id'識別查詢。然後,用戶可以在下一次調用API時傳入「query-id」,API將執行與id關聯的查詢,但只會從上次請求特定查詢時檢索數據。
- 除此之外,我還需要保存每個用戶ID的查詢ID信息。保存SQL查詢,並從上次查詢結果
關於數據庫的信息
選擇的數據庫是PostgreSQL,用戶請求的信息將存儲在各種表中。
我的問題:任何建議/諮詢/關於如何去實現要求 第2號的提示?
是否有一個現有的設計模式,SQL查詢,內置的數據庫函數如何保存查詢和從最後返回的結果中獲取多個表中的信息。
注:
我最初的想法到目前爲止是從每個表中讀取的最後一行(在所有表的每一行都會有一個主鍵)存儲到數據結構,然後保存這個數據結構保存的每個查詢並在再次檢索數據時使用它。
存儲用戶和查詢ID信息,我想創建一個單獨的表來存儲用戶名,UserUUID,SavedQuery,LastInfoRetrieved的。
謝謝。
#2的一個非常簡單的解決方案是將查詢和查詢ID保存在表中的最後結果中,當您看到查詢ID返回先前的結果,然後用新查詢覆蓋它們時 –
@HunterMcMillen當query-id存在於api調用中,這意味着用戶希望執行他們保存的查詢並從上次停止返回數據。保存最後的查詢結果而返回不是我想要做的。我希望我澄清這一點。 – rlito
您的查詢有多複雜?你的大綱建議每個結果集最多隻包含一條記錄,這是否正確?如果是,建立一個3個表格(簡化符號)'user(uuid pk,name,sqid fk)','savedquery(sqid pk,querydesc)'和'result(uuid fk,valid,pk_table1 fk nullable,pk_table2 fk爲空,...)'。這假定用戶只能檢索他們最新的查詢結果。 「有效」適用於從已保存查詢結果的一部分的數據庫中刪除數據的情況。刪除代碼將需要更新受影響的'pk_table'字段。 – collapsar