はじめに
hkob の雑記録の第310回目は、昨日アナウンスした Activities データベースの Years への自動登録の仕組み作りです。
自動リレーションの設定
動的なリレーションは、先月のたいがさんのポストから話題になり、Notion 座談会でも動画で紹介したところです。
//
— たいが | Notionキャンパスリーダー (@tg_notion) 2025年10月24日
【2025年10月版】Notionに追加してほしい機能5選!
\\
Notionに増えて欲しい機能が自分の中で溜まってきたので、言葉にしてみました!
同じような願望がありましたら、一緒に拡散してサンフランシスコまで届けましょう!🇺🇸https://t.co/ULpm5SX0gV
元々のネタが去年の12月でしたので、最近の方はあまり知らないかもしれないですね。せっかくなので久しぶりに詳しく解説してみましょう。
Activities に Years へのリレーションを追加
まずは追加したい Years へのリレーションを追加します。日付が範囲の場合でも、開始日の Year へリレーションを貼ることにするとし、制限は1ページとします。そのため、プロパティ名は単数の Year としました。実際には Year から複数の Activities を取得することが目的なので、双方向リレーションとして複数形の Activities を同時に作成します。

Activities に Map へのリレーションを追加
次に Map へのリレーションを追加します。Map は singleton で1ページしか存在しないので、制限も1ページです。Map から Activities を参照することはないので、双方向リレーションは設定しません。

`Set all to Activities' automation の設定
新規に Activities が作成された時、Map relation には自動的に all が設定されることが望まれます。ここは Automation で対応します。

`Set Year to Activities' automation の設定
ページが追加されたあと、日付が設定された時に対応する Year が設定されるようにします。ここも automation で実現します。本来は日付の設定でトリガをかければいいのですが、次の作業のために「いづれかのプロパティの編集」としております。

設定した値の Year は以下のように Map から取得します。

数式もこちらに記載しておきます。
lets( year, context("トリガーページ").prop("Start date").dateStart().year(), context("トリガーページ").prop("Map").first().prop("Years").filter(current.prop("名前").toNumber() == year).first() )
既存ページに Map を設定 → Year の自動設定確認
先ほどいづれかのプロパティの編集でトリガをかけたので、既存のものに Map を設定することでも automation が発火します。これを一気に実現するために、少しレイアウトに工夫をしてみます。まず、Map と Year を一番左側に配置します。

この状態でテーブル左端のチェックボックスをクリックすると、したまですべてのページが選択された状態になります。ここで「182 件選択済み」となっている右側に最初のプロパティである Map が表示されています。

ここで Map の部分をクリックすると、1ページしか存在しない all が表示されています。この all を選択することで、すべてのページが更新されたこととなり、上で定義した automaion が駆動するはずです。

結果として数秒も経たずに、一気に Year の値が更新されました。

おわりに
今回、Map データベースを使うことで、日付情報から自動的に Years へのリンクを簡単に張ることができました。やはり Map は偉大です。