さて前回はglideに取り込むデータのベターな形態を説明しました。MySQL等RDBに慣れている方には当たり前と思う内容だったかもしれません。
思い出せない方は前回の記事をご確認ください。
今回はglide内でデータを更新したり、データ同士を連携させたりする方法の説明です。
glideでシートのデータを更新してみよう
データを更新したい場合、まずデータのありかを探す必要があります。当然glideもスプレッドシートのデータを取り込んで処理しているので、データが内部に保存されています。
左サイドバーに出てくるリストの中から、Databaseの形をしたものをクリックすると取り込んだデータが表示されます。

みなさんがスプレッドシートで作成されたままの形で、データが取り込まれていることがわかるでしょうか?
画面下の方にはタブがあり、シートの切り替えも可能です。
実際にデータを更新してみよう
では実際にデータを更新してみましょう。
方法はシンプルでスプレッドシートと同様セルに移動するだけです(セルの位置にカーソルを持っていってクリック)。すると以下のようにセルの属するカラムの属性に応じて、”+”マークや “✒️”マークが出てきます。

青く色づいた+マーク等をクリックすると、データが変更できるようになります。上の画像で選択しているのは、img関連の属性のカラムなので、+マークでクリックすると以下のように画像が選択できるようになります。

更新すると元のスプレッドシートはどうなるのか?
さて、glide上で上記のようにデータを更新していくと、元のスプレッドシートはどうなるのか?
答えはシンプルで、同期されているので、同様のデータが入力されています。

glideでカラムを足してみる
さて、データが更新できるということは、似た要領でカラムの追加も可能です。選択したデータ画面の上の方にAdd Column +というボタンがあります。

これをクリックすると、以下のようにどのようなデータタイプのカラムを作成するかのウィンドウが立ち上がります。

label(カラムの名前)を決めた後、Column Typeを選択します。ここは、どういうデータタイプにさせるかを選択します。(データ型を選択するのではなく、何をさせるカラムかを選択します)

計算させたり、単一の値を入力する場合だったり、if->then->elseのような条件分岐+実行のようなものもあります。
今回はrelation機能(データ連携機能)を選択して、使ってみます。
glide内でデータ連携をしてみる
glideにはSQLの joinのような機能が含まれています。それがこのrelationです。
以前スプレッドシートのquery関数やったときはできなかった機能ですが、glideはglide上でデータを連携させてつつも保持するので、joinのような機能も可能なんでしょうね。
実際にrelationさせてみる
非常にシンプルで、Column Typeでrelationを選択して、親データと子データを紐づけるだけです。紐付けはカラム単位です。

例えば、名前で別シートの個人別の対応可能言語明細と連動させてみましょう。別シートはこんな感じで取り込んでいます。

筋はよくないですが、自己紹介シートの名前と個人シートの名前をリンクさせたデータカラムを自己紹介シートに追加しました。こんな感じで表示されています。

ではこれで何ができるようになっているのでしょう?
データ連携するとできるようになること
さて、layout > test1ユーザ を選択して、個人のdetail情報を表示してみましょう。

右上にある+ボタンを押すと、detailシートに要素が追加できます。追加できる要素はたくさんあるのですが、今回は少しスクロールダウンした部分にある、list relationを選択します。

list relationを選択してぽちぽちやっていくと中央画面のように、Add Columnが詳細データの中に表示されるようになりました。クリックしてみましょう。

先ほどデータ連携させた個人別言語スキルが表示されています。無事連携できているようです。
データを連携する機能を使うことによって、元のシートにどんどんカラムを足すという方法ではなく、追加情報を連携させることが可能になります。概念的にはRDBでよく実施する方法ですね。テーブルを分けるって言われるやつです。
relationをさせたときスプレッドシートはどうなっているの?
答えからいうと、データの更新をしたときとは異なり、何も変更されていません。
relationカラムの追加は、glideの中だけで実施されているということになります。

まとめ
正しくデータをあげることによって、大きなレイアウトが簡単に作れることを前回解説しましたが、今回はデータを内部でいじる方法でした。
スプレッドシートと似たようなものなので、特段難しさはなかったかなと思います。
他方で、glide内でデータの連携したり、連携したデータをlayoutに表示するという部分は、一手間かかります。ただ、テーブルを汚さなくても済むので個人的にはありがたい機能だな、というかSQLでできることは全てできて欲しい、と思っています。
暇があったら、いつか自作のglide appも作ってみようかなと、少し調べて思いました。非常に簡単にレイアウトやデータ連携ができるので、ノンプログラマー向けToolだなということは自信持って言えます。