リレーションとロールアップ

Brian Park
Aug 8 '19 · 1 min read · 1164 views
2つのデータベースの情報を一度に見たいこともありますよね。Notionデータベースのリレーション形式のプロパティを活用すれば、複数のデータベースからの情報を用いて様々な表現をすることができます。🤝

データベースのリレーションとは

例えば、あなたが2つのデータベースを仕事で使っていたとしましょう。😉
  • 顧客一覧
  • 販売アイテム一覧
誰がどのアイテムを買ったのかも知りたいし、どのアイテムが誰に購入されたのかも確認したいですよね。そこでリレーションの登場です!
  • 以下の2つのテーブルで、↗ Items↗ Customers がリレーション形式のプロパティとなっています。リレーション形式のプロパティは、他のプロパティ形式と同様の方法で追加することが可能です。
  • Customersデータベースで購入アイテム(Items purchased)を入力すると、Itemsデータベースの ↗ Customers 列に購入者名が自動的に反映されます。

Customers

NameItems purchased
Camille Ricketts  
Abigail Africa  
Ivan Zhao  
Cory Etzkorn  

Items

NameSizePriceCustomers
Khaki pantsM$32.00 
Tank topS$25.00 
T-shirtL$17.00 

活用事例

  • 飲食店一覧エリア一覧をリレーションで関連付ければ、どのエリアにどんな飲食店があるのかが人目でわかるようになります。
  • 議事録データベース顧客一覧を関連付ければ、各顧客に関連する議事録に簡単にアクセスできるようになります。
  • タスク一覧プロジェクト一覧を関連付ければ、プロジェクトとタスクの相関関係がクリアになります。
  • 候補者一覧面接官一覧を関連づけておけば、誰が誰の面接を行ったのかのログを残すのに便利です。

リレーションを作成する

2つのデータベースをリレーションで関連付けるには、まずデータベースを2つ作る必要があります。そこでまず、上記の例で登場した CustomersItems という名称の2つのデータベースを作成したと仮定してリレーションの作成方法をご説明します。
  • Customers データベースに新しい列を追加します。
  • 表示される入力欄に Items Purchased といった列の名前を入力します。
  • Property Type メニューから Relation を選択します。
  • リレーション設定用のウィンドウが立ち上がるので、そこのドロップダウンからリレーションを設定したいデータベースの名前を検索、選択します。
  • 右下の青い Create Relation ボタンをクリックします。
  • リレーションで関連付けられたデータベースに新しい列が自動で作成され、データベースが双方向に関連付けられた状態となります。これで、一方のリレーション列に入力したデータが他方のリレーション列にも反映されるようになりました。
    • 自動で作成されたリレーション列は、列名をクリックすれば名称を変更できます。
  • リレーション列のセルをクリックすると、関連付けられたデータベースの値を選択できるメニューがポップアップします。
    • 以下の例では、誰がどのアイテムを購入したかを入力する様子を示しています。
    • Customers で購入アイテムを入力すると、Items の方に購入者の氏名が自動的に反映されていく様子が分かりますね。
    • 複数の項目を一度に入力したい場合は、アイテムの左側にある青い + を使って対象アイテムを選択します。削除したい場合は X をクリックします。
  • 編集した内容は相互に同期されますので、Items のリレーション列を編集すれば、Customers にも編集内容が反映されます。
🎒
ヒント: 関連付けるデータベースを変更したい場合、対象のリレーション列で再度プロパティ種別から Relation を選択し、関連付けるデータベースを選択する画面から新しいデータベースを選択する手順となります。

リレーションで関連付けたページを開く

リレーション列に入力された値は他のNotionデータベースのアイテムですので、ページとして開くことができます。開いたページは通常のNotionページ同様に編集することが可能です。
  • リレーション列に入力された値をクリックすると、リレーション項目選択のメニューが開くので、そこで項目名をクリックするとページとしてポップアップします。
  • 赤い X をクリックすると項目をセルから削除できます。

データベースの自己参照

編集中のデータベース自身を参照させるようなリレーションも作成できます。例えば、タスク一覧で関連タスクの列を持たせるようなイメージです。関連付けの方法は2種類あります。
  • リレーションで関連付ける
  • サブタスク・親タスクとして関連付ける
いずれのケースも、まずはリレーション列に現在編集中のデータベースを関連づけるところから始めましょう。

リレーションで関連付ける場合

同様のタスクのグルーピングをする場合など、単にアイテムを他のアイテムと関連付けたいだけの場合、一方向にのみ同期されるリレーションを設定することができます。
  • 「水槽を買う」というタスクと、「水槽のフィルタを買う」というタスクがあったとしましょう。この2つは同時に購入するのが楽なので、関連付けを設定したいとします。
  • リレーションでデータベースを自己参照させ、Use the same property を選択してリレーションを作成します。こうすると一方向にのみ同期される設定となるため、「水槽を買う」に「水槽のフィルタを買う」を関連付けても、「水槽のフィルタを買う」には「水槽を買う」は自動反映されません。

サブタスク・親タスクとして関連付ける場合

タスクの親子関係を定義したい場合は、双方向同期する形のリレーションを設定します。リレーションで関連付けた結果が、各タスクのサブタスクと親タスクとしてデータベース上に表示されるようになります。
  • 製品仕様を書いていて(親タスク)、その過程でユーザインタビュー(サブタスク)とモックアップの作成(サブタスク)が必要だとしましょう。
  • リレーションでデータベースを自己参照させて Create a new property を選択すると、双方向同期する2つの列が作成されます。

ロールアップ

ロールアップ機能を使えば、リレーションに基づきデータの集計をすることが可能です。Customers / Items の例で、各顧客の支払い金額を集計したいとしましょう。
  • まず Customers に購入者を関連付けるリレーションを作成します。(上記参照)
  • 次に、新しい列を追加して Property Type メニューから Rollup を選択し、列名をつけます。
  • ロールアップ列のセルをクリックすると、以下を選択するメニューが表示されます。
    • 参照させたいリレーション列
    • リレーション先から値を取得したいプロパティ
    • どのような集計をさせたいか
  • 下記の例でいうと、ロールアップ列 Order Total から リレーション列 Items Purchased を参照させ、そこからItemsテーブルの Price プロパティの値を取得し、Sum の計算で購入物の合計金額を算出させる設定をしています。
    • これで顧客名に関連付けられたアイテムの合算値が算出されるため、顧客ごとの合計支払額がロールアップ列に算出されます。

ロールアップの種類

ロールアップ列に適用できる計算方法は16種類あります。
  • Show Original: 関連付けられたアイテムがセルに列挙されます。リレーション列と同様の使用感です。
  • Count All: 関連付けられたアイテムの値の個数の合算が表示されます。
  • Count Unique Values: 関連付けられたアイテムの値のうち、一意の値の個数が表示されます。
  • Count Empty: 関連付けられたアイテムが空欄になっている数が表示されます。上記の例でいえば、金額が設定されていないアイテムを1つ購入した顧客がいた場合、Count Emptyのロールアップ列には「1」が表示されることになります。
  • Count Not Empty: 関連付けられたアイテムが空欄ではない数が表示されます。
  • Percent Empty: 関連付けられたアイテムが空欄になっている割合が表示されます。
  • Percent Not Empty: 関連付けられたアイテムが空欄ではない割合が表示されます。
以下のロールアップ計算は Number 形式のプロパティのみで利用可能です。
  • Sum: 上記の例のように、関連付けられたアイテムの数値の合算値が表示されます。
  • Average: 関連付けられたアイテムの数値の平均が表示されます。
  • Median: 関連付けられたアイテムの数値の中央値が表示されます。
  • Min: 関連付けられたアイテムの数値のうち最低値が表示されます。
  • Max: 関連付けられたアイテムの数値のうち最高値が表示されます。
  • Range: 関連付けられたアイテムの数値の最低値と最高値の差分が表示されます。(Max - Min)
以下のロールアップ計算は Date 形式のプロパティのみで利用可能です。
  • Earliest Date: 関連付けられたアイテムのうち最も早い日時が表示されます。
  • Latest Date: 関連付けられたアイテムのうち最も遅い日時が表示されます。
  • Date Range: 関連付けられたアイテム最も早い日時と最も遅い日時の差分が表示されます。

ロールアップ結果の集計

テーブルでもボードでも、ロールアップ列に対してデータベース全体での合計、レンジ、平均等の集計をさせることができます。
  • 全顧客の支払い金額の合計値を算出したいとしましょう。
  • Customers テーブルでロールアップ列の最下部にポインタを合わせ、Calculate をクリックします。
  • Sum を選択すれば、ロールアップ列に表示されているすべての数値を合計した値が表示されます。
ボードの場合は、 Relation プロパティの追加によりテーブル同様にリレーションを形成することができます。
  • 以下の例では、既に Customers ボードに Items テーブルがリレーションで関連付け(カード内にページとしてアイテムが表示されています)られており、ロールアップで顧客ごとの支払い金額合計が表示された状態になっています。
  • 全顧客の支払い金額総計を算出させる方法は以下の通りです。(カード数 4 が表示されている箇所をクリックし、メニューから計算方法を変更すると数値が 123 に変わります。)

よくある質問

  • リレーションを含むデータベースをインポート・エクスポートできますか?
    リレーションを含むデータベースをCSVとしてエクスポートすると、リレーション列の値はエクスポートされたファイルではURLに変換されます。現時点では、そのようなURLを含むCSVファイルをインポートしても、Notion上で元のリレーションを再構築することはできません。
  • リレーションを含むデータベースの複製は可能ですか?
    可能ですが、以下のような挙動となります。😅
    上記の例の Customers テーブルを複製すると、Items テーブルへのリレーションも同時に複製されるため、Items テーブルに自動的にリレーション列がもう1つ作成されます。

関連するページ

👉
原文はこちら
解決しなかったら? 右下の ? をクリックして、メッセージを送ってください! Eメールでも受け付けています。 team@makenotion.com ✌️

💡
Notionを導入/更に活用したい企業様向けにサポートサービスを開始しました。 詳細は こちら よりご確認ください。
本コンテンツは Northsand, Inc.の監修のもと翻訳しております。 note | Twitter | Facebook 記載事項の追記/修正の依頼は こちら より
Updating...

Share on