データビルダー
Archie Coreデータビルダーは、データベースのテーブル、フィールドタイプ、およびテーブル間の関係を定義するためのデータモデリングインターフェースです。
データビルダーを開くには、サイドバーのData Model(データモデル)をクリックし、作業したいテーブルを選択して、Schema(スキーマ)タブをクリックします。

定義された各テーブルに対して、Archie CoreのGraphQLエンジンは、GraphQLスキーマオブジェクトタイプと、リゾルバーを備えた対応するクエリ、ミューテーション、サブスクリプションフィールドを自動的に作成します。
これは、すべての作成(Create)、読み取り(Read)、更新(Update)、削除(Delete)のアクション(CRUD)、およびリアルタイム接続(Websocket)が、ワークスペース固有のAPIエンドポイントを介してすぐに使用できることを意味します。
テーブルの操作
Section titled “テーブルの操作”バックグラウンドでは、Archie Coreはワークスペース専用のPostgreSQLデータベースインスタンスをプロビジョニングします。PostgreSQLは、その信頼性とデータの整合性で知られる高度なオープンソースのリレーショナルデータベースです。複雑なクエリを効率的に処理し、ACID(原子性、一貫性、分離性、耐久性)への準拠を完全にサポートします。
テーブルの作成
Section titled “テーブルの作成”+ Add Table(+ テーブルを追加)ボタンをクリックして、新しいテーブルを作成します。新しいテーブルのデフォルト名は「untitled_table」です。すべてのテーブルには一意の名前が必要です(attribute、workspaceという名前とその複数形は予約されており、大文字小文字を問わず使用できません)。
テーブルが作成されるとすぐに、対応するGraphQLスキーマタイプと、クエリ、ミューテーション、サブスクリプションのリゾルバーが自動的に生成されます。

テーブルの更新
Section titled “テーブルの更新”テーブルが作成された後、フィールドとリレーションを定義できます。テーブルへのすべての更新はリアルタイムで公開され、データモデルの定義と高可用性の維持の間でシームレスな体験を提供します。
テーブルが更新されるとすぐに、対応するGraphQLスキーマタイプと、クエリ、ミューテーション、サブスクリプションのリゾルバーが自動的に更新されます。
テーブル関連のエラーや間違いを最小限に抑えるために、Archie Coreは多くの有害なアクションから保護します。これには以下が含まれます:
- 必須ではないフィールドを必須に変更する場合、Default Value(デフォルト値)を求めるプロンプトが表示されます。
- 既存のフィールドタイプが更新されると、日付、数値、テキストフィールドの値は自動的に変換されます。
- 一意でないフィールドを一意に変更する場合、現在のレコードが一意の値を持っているか検証されます。
テーブルの削除
Section titled “テーブルの削除”テーブルを削除するには:
- テーブル名に移動し、
...をクリックします。 - Delete this Table(このテーブルを削除)をクリックします。
- 確認ダイアログが開きます。テーブル名を入力し、Delete(削除)をクリックします。
危険: 削除されたテーブルは復元できず、既存のテーブルレコードは失われます。さらに、削除されるテーブルに関連するテーブル(belongs toおよびhas many、必須かどうかに関わらず)がある場合、それらの関係は切断されます。

テーブル間の関係
Section titled “テーブル間の関係”Archie Coreは、リレーショナルデータベースに期待されるものと一致する3種類のテーブル関係の定義をサポートしています:
| タイプ | AからB | BからA |
|---|---|---|
| 1対1 | テーブルAのレコードは、テーブルBのレコードをhave_one(1つ持つ)またはbelong_to(属する)可能性があります。 | テーブルBのレコードは、テーブルAのレコードをhave_one(1つ持つ)またはbelong_to(属する)可能性があります。 |
| 1対他 | テーブルAのレコードは、テーブルBのレコードをhave_many(多数持つ)可能性があります。 | テーブルBのレコードは、テーブルAのレコードをhave_one(1つ持つ)またはbelong_to(属する)可能性があります。 |

2つのテーブル間の関係の定義は、あるテーブルを別のテーブルにドラッグアンドドロップするか、新しいテーブルフィールドを作成するときにデータタイプとしてTable(テーブル)を選択することで実行できます。
テーブル構成
Section titled “テーブル構成”テーブル間のhas many、has one、belongs toの関係を指定するため。
構成
- Name(名前): 関連付けるテーブルを選択するため。
- Related Table(関連テーブル): 対応するテーブルに表示されるリレーションの名前。
- Type(タイプ): 関係がhas oneかhas manyか。
- Description(説明): フィールドに関する情報を記述できるオプションのテキストボックス。
- Mandatory(必須): フィールドの関係が必須かどうか。
テーブルタイプ
Section titled “テーブルタイプ”3つのテーブルタイプがあります:カスタム、ビュー、データタイプです。
カスタムテーブル
Section titled “カスタムテーブル”カスタムテーブルは、管理者が任意のワークスペースで作成したテーブルです。これらは完全にカスタマイズ可能です。
ビューテーブル
Section titled “ビューテーブル”ビューテーブルは、複数のテーブルのフィールドを単一のビューに集約する仮想テーブルです。内部的には、SQLステートメントの結果セットに基づいています。ワークスペースでは、APIエクスプローラーでviewCreate GraphQLミューテーションを使用して作成できます。
データタイプ
Section titled “データタイプ”タイプを使用すると、相互に排他的な値の静的で順序付けられたセットを定義できます。標準のテキストフィールドとは異なり、Enum(列挙型)はデータ入力を事前定義された定数の特定のリストに制限します。
一般的な例には、ステータスインジケーター(例:DRAFT、PUBLISHED、ARCHIVED)、ユーザーロール、カテゴリラベルなどがあります。
有用性と利点
Section titled “有用性と利点”データベーススキーマでEnumを使用すると、いくつかの主要な利点があります:
- データの整合性: Enumはデータベースレベルで厳密なデータ検証を施行します。フィールドは定義されたリストからの値のみを受け入れるため、タイプミスや一貫性のない命名規則によるエラーを排除します(例:優先度フィールドでの「High」、「high」、「Hi」の混在を防ぐ)。
- コードの一貫性: 許容される値の信頼できる唯一の情報源(SSOT)を提供し、アプリケーションロジックをより予測可能で保守しやすくします。
- 可読性: Enumはデータを自己記述的にします。
PAYMENT_FAILEDのような値は、error_code: 3のような任意の数値コードよりも、開発者やアナリストにとって意味があります。 - パフォーマンス: PostgreSQLでは、Enumは内部的に効率的に保存されますが、読み取り可能な文字列として提示され、パフォーマンスと人間による可読性のバランスが取れています。