【４つの結合方法】MotionBoardのマスター項目を解説【難易度：低】

#最初に
MotionBoardは綺麗でわかりやすいグラフや画面を作ることができます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/04c48011-e65b-88dd-f666-a838819636e4.png" width=60%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/e777e485-f3d0-3dc7-57e2-ddddd2df8860.png" width=60%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/7bc601e7-ace8-cafa-2313-c2d66b9de500.gif" width=60%>
綺麗な上に、動いたりもします。
気になる人は下記リンクをクリックしてください。体験デモもできます。
[MotionBoard　体験デモについて（公式HPより）](https://www.wingarc.com/product/motionboard/demo/index.html)

<details><summary>【MotionBoardとは】</summary><div>
様々なデータソースからデータをあつめ、１つの画面上で統合するMotionBoard。
クラウドサービスとの接続もでき、チャットツール送信もできるのでとてもおもしろいです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657180/877897e8-35d1-b055-a80c-b9051866bc38.png" width=60%>
※キャプチャはウイングアーク1st社のホームページより抜粋
[ウイングアーク１ｓｔ株式会社　MotionBoard](https://www.wingarc.com/product/motionboard/index.html)
</div></details>

さて、今回はMotionBoardの数ある結合方法の中のひとつである「マスター項目」について、特徴とメリデメをまとめます。
お手軽に使いやすい反面、多用しすぎるとレスポンスに影響が出てくるので、それらの情報を抑えておくようにしましょう。

#特徴
まずマスター項目について、マニュアルの[「マスター項目を作成する」](https://cs.wingarc.com/manual/mb/6.1/ja/UUID-23452f53-4e51-911d-f4c3-cba280912504.html)を確認してみましょう。

マニュアルを抜粋すると、マスター項目とは「他データソースにしかない項目を自データソース項目として使用する項目のこと」となります。
下図のように受注管理表の中に社員名を持っていなかったら、社員マスターとつなげて社員名を持ってくるという感じです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/cffcf609-fe32-a7ed-a1c5-d45cd03ead97.png" width=60%>

大変シンプルな結合です。
イメージとしては**素材の味（受注管理表）だけで料理（分析）してたけど、味薄いんでちょっと塩足す（社員マスターをマスター項目で結合）**くらいのイメージです。

さっそくつかい方を見ていきましょう。

#つかい方
ぼくが持っている全国のPOSの売上データ（イメージ）を見ると、ブロック名があるのですが、それよりも上位の項目がございません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/640565a7-124c-fdad-abd4-959b6ccc0894.png)

東日本・西日本でどれだけ売上が異なるかの情報が欲しいので、マスター項目をつかってさっと分析してみます。


まずはExcelでこんなマスターを用意しました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/27388e61-54a2-32ed-52f7-5500cffe851a.png" width=60%>

このExcelのデータを分類マスタと名付けて、MotionBoardにアップロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/de103f37-efeb-9f91-4ad3-81977d30d7e4.png)

この分類マスタでデータソースをつくります。
ただExcelデータを読み込んで、OKをクリックするだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/f52c2dbd-b9e9-f31d-99b1-379fa79d8d8a.png)

次に、売上データのデータソースを作成します。
このデータソースに先ほどの分類マスタを追加することになります。

データソースエディタの左下の[追加項目作成]から[マスター項目]を選んで[OK]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/928881f6-014e-25de-944d-fa54d3d79594.png)

設定する箇所は下図の３グループです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/3d7c2cfb-da71-4cfc-ee69-2e96b0727d7b.png" width=60%>

緑枠は項目の名前です。
赤枠は売上データの中のどの項目が結合のキーとなるかです。今回は「関東」「関西」などの[ブロック名]ですね。
青枠で分類マスタを呼んできます。
分類マスタの同じく[ブロック名]を結合の条件にして、画面に表示するのは「東日本」「西日本」なので[分類]です。


さて、これでマスター項目の設定が終了しましたので[分類]という項目を置いてみます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/13e7d846-a173-da62-0236-8fa4d7d47117.png" width=60%>

ちゃんと東日本、西日本にわけることができましたね。

つくったデータソースをコピーして、円グラフと集計表を用意し、下図のようにチャートをリレーションしました。
![test12.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/5085b64f-093b-3e4d-2962-c5334ac0a138.gif)

マスター項目のつくり方については以上です。

#メリット & デメリット
ごらんになっていただいたように、つくり方はシンプルです。
他の記事で説明しているような結合よりはわかりやすく、とっつきやすいでしょう。

・すぐにつくれる
・簡単につくれる
というメリットがございます。

デメリットはエンジニア目線の話になります。
マスター項目はデータソースを結合させて、項目を**1つ**持ってくるものです。
そう、1つなのです。

たとえばつくったマスタが下図のようなものだとします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/f7a3c9bb-63e5-9b66-ee7e-70b57d53714f.png)
分類の他に大分類という項目があります。

マスター項目にセットすると下図のようになりますよね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/a77d8b0e-40e1-79e0-09c5-de9907dd37aa.png)

これ、表面上は問題ないのですが、上側では分類を表示する時、大分類を表示する時に**それぞれがマスタを見に行って項目を表示しています。**

結合したい項目が増えても、結合が効率化されないので、どんどんとレスポンスが悪くなってしまうのですね。

またデータソースを新規作成するたびにマスター項目をつくらないとならないので、手間がかかります。
このような条件のときは**モデル**を使用した方が良いでしょう。

もうひとつだけ、重要なことが。
マスター項目は**全体検索**に使いにくいです。

下図のように全体検索の項目には出てくるのですが、検索候補値で[他データソース定義項目の値]が表示されません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/699d9361-22b7-8673-d827-987b8369571a.png)

[他データソース定義項目の値]は「東日本」「西日本」などの候補値をデータソースから取得する機能です。
[直接入力]だと手打ちをしなければならず、データと同期がとれません。
ここも気を付けておかねばならないポイントですね。


つまりマスター項目のデメリットは
・結合する項目が増えると、レスポンスに影響が出る
・運用や管理がしづらい
・全体検索の候補値にならない
となります。

#さいごに
いかがだったでしょうか。
簡単！　お手軽！　それ以上は別の結合にしよう、これがマスター項目ですね。

他の記事で、別の結合方法について解説しますので、ぜひそちらもご参照くださいませ。