>100 Views
January 18, 24
スライド概要
1/7 続・GraphQLについて スキーマ編
2/7 今回作るデータのテーブル構造 1人のユーザーが1つのプロフィールをもつ。 ユーザーは自由にPostの投稿、Postへのコメントができる
3/7 スキーマをごく単純に定義 スキーマをテーブルの通りに定義すると・・・ テーブル定義をそのままスキーマに落とし込むことは アンチパターンとされている
4/7 スキーマ定義のアンチパターン ・スキーマ定義を見てテーブル構造が理解できてしまう ・扱うデータの型付けに乏しい ・各スキーマの間の結びつきに乏しい ・クエリによる必要/不必要な情報の取捨選択ができない、 またはできすぎてしまう
5/7 スキーマ定義の改善案① ①. idをID型に変更し、固有の数値であることを示す。また、Non-nullにする ②. profileをUserの中に含める ③. enum型を用意し、格納されるデータを固定する
6/7 スキーマ定義の改善案② ①. idをID型に変更し、固有の数値であることを示す ②. profileにcommentを含める。 ③. commentからuserを取得できるようにする ④. Non-nullを増やし、データの型を固める
7/7 スキーマ定義を工夫すると・・・ ・テーブル構造が見えなくなる ・データの型付けによるデータ安全性の強化 ・柔軟な情報のやり取りが可能に ・中間テーブルのスキーマ定義が必要なくなる