私はGraphQLが新しく、2つの異なる方法のいずれかで関連するフィールドを選択できることに気付きました。 droids
テーブルとhumans
テーブルがあり、droids
のテーブルがhumans
のowner
であるとします。GraphQL:これらの2つのパターンのどちらが良い/悪いですか?
query DroidsQuery {
id
name
owner {
id
}
}
か:あなたはこれを表現するには2つの方法(少なくとも)あります一見
query DroidsQuery {
id
name
ownerId # this resolves to owner.id
}
は、前者はより多くの慣用的なようだ、とあなたは複数のフィールドを選択している場合、明らかにそれは(の利点がありますowner { id name }
と新しいownerName
を作成する必要がありますのでownerId ownerName
を実行できます)。しかし、具体的には、ownerId
のスタイルにはっきりとした説明があります。
また、実装の観点から、ownerId
フィールド対humans
テーブル(のid
列としてowner { id }
を翻訳と同じように、不要なJOIN
作るリゾルバに自分自身を貸すだろうowner { id }
のように思える、独自でいます、レゾルバは、droids
テーブルのowner_id
列を取得するためにJOINが必要ないことを知っています)。
私が言ったように、私はGraphQLを初めて使いました。だから、この質問にはニュアンスがたくさんあると思います。したがって、私はGraphQLをどちらのアプローチの悪い/弱い側面に使っている人からの洞察を期待していました。そして、私は明白に "ここで客観的に悪い/優れているアプローチは他のアプローチよりも優れています"と主観的な "私は1つのアプローチを好む"答えを探しています。
詳細な回答をありがとうございますが、「あなたはどちらにでもできる」と言っているような気がします。事は、私はすでに私がそれをどちらかの方法で行うことができることを知っています。私が本当に理解しようとしていることは、それを一方向に行うことの長所/短所(すなわち、トレードオフ)です。 – machineghost