检索数据我设计一个数据库和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