6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Notion の Database ボタンを使ってカウンター機能を実装してみる

Last updated at Posted at 2024-05-02

🐣 はじめに

最近仕事でNotionのデータベースボタンを触る機会があり、このボタン使ってカウンター機能を作れないかなーと試行錯誤した結果それっぽいものができたのでご紹介させていただきます。

📝 Notion Database のボタン機能とは?

NotionではDatabaseのプロパティとしてボタンを指定できるようになりました。
ボタンプロパティを指定することで各フィールドにボタンを表示することができ、そのボタンを押下したときのアクションを指定することで様々な処理を行うことができます。

Notion公式ページでは「エスカレーションボタン」や「投票ボタン」など様々なアイディアが実装例とともに紹介されています。

投票ボタンの例
upvoting.gif
引用:https://www.notion.so/help/guides/make-work-more-efficient-database-button-property

🥞 今回作るもの

Notion公式の「投票ボタン」では1人1回しか投票できませんが、今回はこれを応用して何回でも投票できるカウンター機能の実装を行ってみたいと思います。

完成イメージ

notion-database03.gif

Notionデータベースの設定

それでは早速作っていきましょう!

2024年5月現在Notionデータベースのボタン機能からデータベース内の数値を増やす方法がないため2つのデータベースを連携させる必要があります。(もし可能でしたらコメント下さい:pray:

空のNotionページにインラインDatabaseを2つ作成します。

image.png

今回は「表示用DB」と「集計用DB」を作りました。
NotionデータベースではデフォルトでTagsが設定されていますが、このプロパティは今回使用しないため削除してしまってください。

image.png

表示用Databaseの設定

次に「表示用DB」に必要なプロパティを追加していきます。
データベースの「+」ボタンを押して下記のプロパティを追加します。

名称 タイプ 備考
いいね数 Formula 後の工程で計算式を入力するため現在はプロパティの追加のみで構いません
いいね!👍 Button こちらも後工程でボタン押下時のアクションを追加します
いいね総数 Relation 集計用DBにリレーションを張ります。その「Show on 集計用DB」のトグルをONにし双方向にリレーションが張られるようにします

notion-database01.gif

ボタン押下時のアクションを追加する

次に「いいね!👍」を押下した際の処理を追加していきます。

  1. 「いいね!👍」ボタンの「Edit property」を開くとボタン押下時のアクション編集ができるので「Add action」をクリックします。
  2. アクションは「Add pages to...」を選びページの追加先には「集計用DB」を指定します
  3. 追加するページ名は「+1」としておきます(名前は自由に決めてもらって大丈夫です)
  4. 「Edit another property」を押下しプルダウンから「いいね総数」を選択します
  5. プロパティの指定先を選択できるので「This page」を選択します

notion-database02.gif

いいね数を計算する

ここまで気たらあと一息です!
最後に「いいね数」のプロパティを編集していきます。

  1. 先ほどと同様に「いいね数」の「Edit property」を開き、FormulaのEditから計算式を入力します
  2. 「Your formula」というフィールドに length(prop("いいね総数")) と入力します

完成!!

これで完成です!
「いいね!👍」をクリックすると集計用DBにページが追加されていいね数が増えているのが確認できると思います。

notion-database04.gif

🏋️‍♂️ まとめ

今回は2つのデータベースを連携させてカウントアップ機能を実現しているため、クリック時の動作速度が若干気になりますが、当初やりたかったことは実現できました。

今後Notion公式からデータベースのボタン機能からデータベース内の数値を増やす方法が提供されればもっとスマートな実装ができるかもしれません。

もしもっといい方法あるよ!!という方がいらっしゃったら是非コメントください。
最後にこの記事「いいね!👍」と思ったら記事のいいねもお願いいたしますw

🌈 参考サイト

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?