自然キーとルックアップ

レコードは、IDのほかに、about-usのような読みやすいキーでも指定できます。ルックアップはモデルに一意なキーを追加するため、ハンドルやSKUから、型付きの1つのクエリでレコードを見つけられます。

自然キー

自然キーは、レコードに付ける任意の、人が読めるアドレスで、_naturalKeyとして返されます。文字、数字、ハイフン、アンダースコア、ピリオド、チルダからなる、URLで安全な1つのセグメントです。GraphQL、SDK、CLIでキーを指定してレコードを読み取れ、一致しない読み取りはnullを返します。キーは常に、フィルターとソートに使えます。

衝突とリネーム

キーはレコードの作成時に設定します。モデルの別のレコードがすでにそのキーを持っている場合でも、作成は成功し、Fóirが接尾辞(about-1、about-2)を付けるため、レスポンスからキーを読み直してください。リネームは別のミューテーションです。別のレコードが新しいキーを持っている場合は拒否され、レコードのIDは変わりません。

ルックアップ

ルックアップは、モデルに追加する名前付きのキーで、設定ファイルでkeyByを使って宣言します。1つごとに、レコード1件またはnullを返す型付きクエリが生成されます。たとえば、商品のSKUに対するルックアップからは、productBySkuが得られます。ルックアップは最大4つのフィールドを組み合わせられ、1つのモデルに最大4つまで持てます。フィールドは、トップレベルのtext、integer、decimal、boolean、enumのフィールドである必要があります。

ルックアップのクエリは、呼び出し元に配信されているバリアントの値に一致し、locale引数を取ります。

一意性とバックフィル

ルックアップは一意で、インデックスが付きます。ルックアップ値が別のレコードと衝突するレコードの保存は拒否され、エラーにはモデル、ルックアップ、そのフィールドが示されます。コンソールは衝突をインラインで示します。

レコードがすでにあるモデルにルックアップを追加すると、プッシュ時にバックフィルされます。既存のレコードに重複する値がある場合、プッシュは停止し、ルックアップは追加されません。

詳細を読む

ルックアップのガイドで、ルックアップの宣言、生成されるクエリ、複合キー、競合エラーを説明しています。