Database 提供一个;下一个ID“;来自Postgres的分页API响应中的属性
我有以下表格结构:Database 提供一个;下一个ID“;来自Postgres的分页API响应中的属性,database,postgresql,pagination,Database,Postgresql,Pagination,我有以下表格结构: CREATE TABLE "public"."things" ( "id" int4 NOT NULL DEFAULT nextval('things_id_seq'::regclass), "externalId" varchar(1000) NOT NULL, "createdAt" timestamp NOT NULL DEFAULT CURREN
CREATE TABLE "public"."things" (
"id" int4 NOT NULL DEFAULT nextval('things_id_seq'::regclass),
"externalId" varchar(1000) NOT NULL,
"createdAt" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
"description" varchar(1000),
PRIMARY KEY ("id")
);
(externalId
是一个GUID,因此它永远递增且唯一)
我接受以下API请求参数来查询此表:lastSeenID
其思想是API响应是:
{
items: [Things],
total: 50
}
如果API请求包含lastSeenID
,这将是items
数组中最后一个项的externalId
,因此我使用它来查询我的表,如下所示:
SELECT*FROM“things”,其中“externalId”>'XYZ'LIMIT 7
-这将获取API响应中的items
属性,并获取总计
:选择COUNT(1)作为“things”LIMIT 1的“COUNT”
我的问题是:如果客户端不跟踪items.length
并每次将其与total
属性进行比较,那么向客户端表明没有更多记录可获取的最佳方式是什么。最好在响应中传回一个nextIdAvailable
,如果他们已经到达该查询的分页末尾,则将其设置为null
。这个查询看起来像什么