データ構造の構築

KiiObject の URI 表現を使うと、KiiObject 間の関連やリンクを表現できます。これを組み合わせれば、ツリー構造やグラフ構造などの様々なデータ構造を Kii Cloud 上に実現できます。

KiiObject 間の関連

最も単純な関連が片方向の関連です。

2 つの KiiObject の間に片方向の関連を持たせたい場合、キーと値のペアの特定のキーに相手側の KiiObject の URI を格納します。これによって、次の図のようなリンクを表現できます。なお、この図では Kii Cloud SDK の URI 表現を使ったリンクを想定していますが、REST API でも各 KiiObject を表現する URL を使うことで同様のデータ構造を表現できます。

リンクの構築と、その後の参照方法の実装イメージは次のとおりです。

  1. オブジェクト B を作成して save(サーバーに保存)します。
  2. オブジェクト A の "myLink" キー(キー名は例です)にオブジェクト B の URI を格納して save します。
  3. その後、オブジェクト A の処理中にオブジェクト B が必要になった場合、"myLink" キーの URI から オブジェクト B を作成して refresh(サーバーから取得)します。

Kii Cloud 上で同じオブジェクトであっても、クライアント SDK で複数のオブジェクトを作成したときは、インスタンス間で内容の同期は行われません。上の例では 3 で refresh しても 1 のオブジェクトはそのままです。

より複雑な関連

片方向の関連を組み合わせれば、複雑なデータ構造も実現できます。

たとえば、ツリー構造を構築するには、下記のようなデータ構造を使用できます。キーと値のペアの 1 つに子ノードの URI の配列を、もう 1 つに親ノードの URI を保存します。これによって、双方向のリンクを持ったツリーが表現できます。

ユーザーなどの参照

ユーザーやグループも ID や URI を使って参照できます。たとえば、オブジェクト内の "friend" キーに友達のユーザー ID を格納するなどの構成を取れば、ソーシャルグラフのような構造を表現することもできます。