リレーション(Notion練習帳)

Notionを基礎から学ぼうという連載のその11です。前回の記事はこちらです。

hirocom777.hatenadiary.org

前回は、いろいろなプロパティをご紹介しました。Notionはプロパティを使って多彩なページ管理ができます。

今回はデータベースブロックの目玉機能、リレーションをご紹介しようと思います。

リレーションとは

リレーションは一般的なデータベースの用語で関係性を表します。すでにご紹介したとおりNotionのデータベースブロックはページを管理する物なので、普通のデータベースとは少し異なります。それでは使用例を見てみましょう。以下の2つのデータベースブロックを作ります。

1つは顧客リストです。名前の他に購入商品と購入金額のプロパティがあります。

もう1つは商品リストです。こちらには商品価格のプロパティがあります。商品価格にはすでに値が入力されています。

まずは顧客リストの購入商品プロパティをリレーションに設定してみます。購入商品列の先頭をクリックして「プロパティを編集」から「プロパティの選択」を指定してリレーションを指定してください。

リレーション対象の選択画面が出てきますので「商品リスト」を選択しましょう。

選択が完了した状態で購入商品プロパティ下のセルを選択すると、商品リストにあるページを選択して入力できます。複数入力も可能です。

前回ご紹介したプロパティ、マルチセレクトの候補が他のデータベースブロックのページタイトル一覧になる感じです。当然セルに入力された内容をクリックすれば該当ページが開きます。

次にもう一度、購入商品列から「プロパティの編集」を選択して「商品リストに表示」の項目をONにします。

最後に「リレーションの更新」ボタンをクリックすると、商品リストのデータベースブロックに顧客リストプロパティが追加されました。

こちらもリレーションに設定されていて、顧客リストにあるページを選択して入力できます。今回は以下の様に入力しました。

これに対応して、商品リストの顧客リストプロパティに対応する顧客リストのページが表示されます。

どちらかの入力を消去すると、対応する入力も消去されます。これがデータベースブロックのリレーションです。

この様にリレーションを使うと複数のデータベースブロックの情報を関連付けて表示できます。

ロールアップ

リレーションの結果から表示されているページのプロパティを表示できると便利です。データベースブロックでプロパティのロールアップを使うと実現できます。上で使ったデータベースブロックで試してみましょう。

顧客リストの購入金額のプロパティをロールアップに指定します。続いて「プロパティを編集」の画面でリレーションを購入商品に、プロパティを商品価格に指定します。

顧客リストの購入金額プロパティは以下の様になりました。

この様にロールアップを使うとデータベースブロックに表示する情報を増やすことができます。

計算する

ところで上の例ではセルに複数の入力がある場合、ロールアップの結果も複数の値が列記されています。この列は購入金額となっていますので、合計の値を表示したいところです。ロールアップでは表示方法を変更できるのです。

購入金額プロパティの設定を「プロパティを編集」の画面で「計算」を選択します。デフォルトでは「オリジナルを表示する」となっています。ここを「合計」に変更しましょう。

表示金額が1セルあたり1つになって、合計金額が表示されました。

他にも数値の集計方法については「平均」、「中央値」、「最小」、「最大」、「範囲」(最大値から最小値を引いた値)を選択できます。これらはプロパティの形式が数値の時のみ使用できます。

また、その他にも以下の計算方法が使えます。

日付のプロパティで使える計算

以下の計算方法は、日付のプロパティでのみ使用できます。

  • 最も古い日付

参照するプロパティのうちもっとも古い日付を表示します。

  • 最も新しい日付

参照するプロパティのうちもっとも新しい日付を表示します。

  • 日付範囲

参照するプロパティのもっとも古い日付と、もっとも新しい日付の差分を表示します。

その他の計算

以下の計算方法は、数値、日付以外のプロパティでも使用できます。

  • オリジナルを表示する

参照するプロパティをそのまま列挙します。

  • 一意の値を表示する

参照するプロパティのうち重複しているものを避けて表示します。

  • すべてカウント

参照するプロパティの数を表示します。

  • 一意の値の数をカウント

参照するプロパティのうち重複しているものを避けて数をします。

  • 未入力をカウント

参照しているプロパティのうち値が未入力なものの数を表示します。

  • 未入力以外をカウント

参照しているプロパティのうち値が入力してあるものの数を表示します。

  • 未入力の割合

参照しているプロパティのうち値が未入力なものの割合を表示します。

  • 未入力以外の割合

参照しているプロパティのうち値が入力してあるものの割合を表示します。

次回は関数

いかがでしょうか?リレーションとロールアップを使えばデータベースブロックの使い道が広がりますね。次回は関数です。Notionのデータベースブロックでは関数機能が使えるんです。お楽しみに!!

Notion練習帳の連載記事はコチラからどうぞ