とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど

開催予定の勉強会

読者登録と各種SNSのフォローもよろしくお願いいたします。

Pleasanterで他のサイトテーブルのレコードと紐づけられるリンク機能を使ってみよう

Pleasanterを使いこなしてくると他のデータと紐付けたり1つのテーブルだけでは物足りなくなってきました。もちろん、データを1つの表として集約して管理できると嬉しいことではあるのですが、あらゆるデータを扱おうとするとどこかで無理が生じてしまいます。Excelを使っていてよくぶち当たるのは、どこかで親子関係のようなデータの紐付きが出てきて1つの表では表現できなくなってしまいますね。

そんな時にデータベースやデータに関わる設計や勉強をしたことがある方であれば、「正規化」を思い浮かべるのではないでしょうか。細かい話をしてしまうと奥が深い世界なので語りきれないのですが、大袈裟なことを言ってしまうとExcelで無理が生じている限界の状態はデータベースの正解では非正規系と呼ばれる状態に近いような気がしています。

しかし、正規化はデータベースの世界で最適化する手法であるため、Pleasanterにそっくりそのまま当てはめることはできませんが、頭の片隅に知識として入れておくと、サイトテーブルの設計がスムーズになるかもしれませんね。興味がある方は1度調べてみてください。

少し話が脱線したかもしれませんが、Pleasanterでデータを分割してデータ同士を紐づけるJOINのような機能を紹介します。

リンクとは

テーブルの親子関係を設定することで編集画面から紐付く子テーブルのレコードを一覧表示したりすることができます。これにより他のサイトテーブル同士を繋げたり、レコード同士の紐づきを管理することができます。

応用編:リンク | Pleasanter

リンクの設定方法

Pleasanterでは分類項目を用いてテーブル間の紐付けを定義します。複雑なことをやろうとするとよく登場する項目ですね。

テーブルの管理:項目:分類 | Pleasanter

1番シンプルな方法はサイト一覧の画面でリンクしたいテーブルを親から子へトラック&ドロップします。または、分類項目の選択肢一覧に[[サイトID]]で指定するとリンクされます。

ダイヤルが表示されてリンク先の項目や項目名を編集できます。今回は既定値のままにします。

実際に紐付ける前に、固定テーブルにいくつか適当なデータを登録してください。

子テーブルの準備ができたら、親テーブルに移動して新規作成画面を開きます。先ほどリンクしたことで、1番最後の項目に分類項目が追加されています。

この分類項目を開くと、先ほど作成した子テーブルの一覧が表示されていることが確認できます。リンクしたい子テーブルのレコードを選択して、作成ボタンを押します。

作成後に編集画面が表示されて画面の下の方を見てみると、リンクが表示されています。一覧表には先ほど選択した子テーブルが表示されています。

これでリンクができました。

リンクのパターン

親:子の関係でいくつかのパターンで試してみましょう。

1:1(他レコードから同じ子テーブル紐付けNG)

単純にリンクしただけでは複数の親から同じ子とリレーション関係をリンクすることができます。1対1の関係にしたい場合は、項目の設定画面(設定 > テーブルの設定 > エディタ > 詳細設定)から重複禁止をONにします。

この設定を有効にすることで、他のレコードで同じ値を選択できなくなります。そうすることで実質的な1:1の関係を維持することができます。

多:1(子テーブルに親テーブルから複数レコードを紐付け)

1:1のパターンで話していた単純にリンクしただけでは...のケースです。親テーブル側では1つの子しか選択できませんが、他の親からも同じ子テーブルのレコードを選択できます。

1:多(親テーブルに子テーブルから複数レコードを紐付け)

子テーブルから複数のレコードを紐付けたい場合のケースです。これは分類項目の設定で複数選択をONにすることで実現できます。

1:多多:1は、基本的な同じような紐付けになりますが、実際の業務の流れた紐付けが発生するタイミングなどで使い分けることになると思います。

おわりに

リンク機能をマスタするとエクセルでは扱いきれなかったような複雑なデータを扱うことができるようになりますね。仕事上で扱うデータなどは1つの表で管理できることはなかなかないので、リンク機能をうまく使って複雑なデータを上手に扱って業務効率化を実現していきたいですね。