3 つの異なる PostGres テーブルがあり、それぞれに異なるタイプのアソシエートが含まれています。データベース フィールドはタイプごとに異なります。そのため、これらは 3 つの別々のテーブルにあります。
あらゆるタイプのアソシエイトにアクセスできる可能性のあるコンポーネントが 1 つあります。これまでに遭遇した例から、コンポーネントは通常、1 つの GraphQL クエリに関連付けられているようです。
const withData = graphql(GETONEASSOCIATE_QUERY, {
options({ navID }) {
return {
variables: { _id: navID}
};
}
,
props({ data: { loading, getOneAssociate } }) {
return { loading, getOneAssociate };
},
});
export default compose(
withData,
withApollo
)(AssociatesList);
また、特定の GraphQL クエリは、たとえばスキーマ内の単一のタイプのレコードのみを返すことができるようです。
getOneAssociate(associateType: String): [associateAccountingType]
質問:単一のクエリが異なるタイプのオブジェクトを返すことができるように、GraphQL スキーマを設計することは可能ですか? リゾルバーは、どの postGres テーブルを参照するかを伝える AssociateType パラメーターを受け取ることができます。しかし、必要に応じて、associateAccountingType、associateArtDirectorType、associateAccountExecType などのタイプのオブジェクトを返すことができるようにするには、スキーマはどのようになるでしょうか?
情報をお寄せいただきありがとうございます。