GraphQL和Relay规范要求具有带有以下描述和实现的node(id:ID!)字段的查询类型:
type Query {
node(id: ID!): Node
}
中继希望通过id重新获取任何对象。这意味着服务器应以某种方式了解应查找的对象类型。 db中要扫描的表。 很明显,ID不能只是序列ID或uuid,因为在这种情况下,它必须扫描所有表。那是不好的方法。
我来到解决方案中,对对象ID及其类型进行编码,以便能够了解要查询的表。以base64编码的“ 24 | User”之类的东西将赋予唯一标识符“ MjR8VXNlcg ==“。我很确定这种方法会奏效,但是我想知道有没有更好的方法来处理这种情况?有哪些替代方案?
答案 0 :(得分:1)
https://relay.dev/docs/en/graphql-server-specification.html#object-identification给出了答案。
没有全局唯一ID的系统通常可以通过将类型与特定于类型的ID相结合来合成它们...
所以我在这个问题上做了什么。但是他们使用了另一种格式:“ TypeName:id”。