データベース関連の仕組み
ここでは、Hexabase でデータベース間を関連付ける仕組みについて解説します。
データベース関連とデータリンク
Hexabaseのデータストアはリレーショナルデータベースのように操作できますが、実際の仕組みではアイテムをmongoDBのドキュメントとして格納、リレーションをArangoDBで管理しています。そのために、Hexabaseはリレーションをあらわす次の実体データを持っています。
- データベース関連:データベース間の関係性を定義する
- データリンク:関連を持つアイテムへのリンク
関連・リンクはそれぞれ方向を持っており、関連元データベース ⇒ 関連先データベースとして設定します。双方向の関連を持たせるには、それぞれのDBで設定が必要です。
関連先データベースは、アプリケーションをまたいで設定できます。これは、次のようなケースで利用できます。
- 共通マスタアプリケーションがマスタデータを持ち、各業務アプリケーションで参照する
- 販売アプリケーションのデータを仕入アプリケーションで参照する
RDBMSとHexabaseデータストアの比較
--- | RDB | Hexabase |
---|---|---|
DB設計 | 関係モデル(E-R図) | 関係モデル(E-R図) |
リレーション | 実体データを持たない | 実体データを持つ |
検索 | SELECT文のJOINでテーブルを実行時に結合。テーブル構造によってはパフォーマンス劣化 | データリンクで事前に結合。検索時はデータリンクをたどるため高速 |
更新 | レコードのみを更新し、リレーションは更新不要 > ACIDを担保しやすい | アイテム更新時にデータリンクも更新 > 更新に時間がかかる場合がある |
トランザクション | あり | 主要なAPIでトランザクションをサポート:CreateItem API、UpdateItem API、ExecuteAction API |
データベース関連の設定手順
データベース関連の設定は、次の手順でおこないます。
- 案件一覧のデータベース設定を呼び出す
- 「データベース関連の設定」タブを開く
- 「データベース関連」で「案件明細」を指定する
※ データベース関連のさらに詳しい設定手順は、管理画面リファレンス > データベースの関連付けで説明しています。
APIにより関連アイテムを操作する
関連アイテムは次のAPIで操作できます。
アイテム作成・更新時に関連アイテムを指定する
各APIのrelated_ds_itemsオプションで関連アイテムを指定します。
- CreateItem API:新規アイテムを作成する
https://apidoc.hexabase.com/docs/v0/item-actions/CreateItem/ - UpdateItem API:アイテムを更新する
https://apidoc.hexabase.com/docs/v0/item-actions/UpdateItem/ - ExecuteAction API:アクションを実行する
https://apidoc.hexabase.com/docs/v0/item-actions/ExecuteAction
関連アイテムとのデータリンクを追加・更新・削除
- AddItemLink API:関連アイテムとのリンクを追加
https://apidoc.hexabase.com/docs/v0/item-links/AddItemLink - UpdateItemLink API:関連アイテムとのリンクを更新
https://apidoc.hexabase.com/docs/v0/item-links/UpdateItemLink - DeleteItemLink API:関連アイテムとのリンクを削除
https://apidoc.hexabase.com/docs/v0/item-links/DeleteItemLink
管理画面で関連アイテムを操作する
データベース関連を設定すると、アイテム詳細画面の『関連データ』タブに、関連するアイテムの一覧が表示されます。ここで、関連アイテムの追加・更新・削除が可能です。